1. 字符串
A. 赋值和取值
SET key value
GET key
- 递增数字
INCR key
例:
redis > INCR num
(integer) 1
Redis >INCR num
(integer) 2
注意:当前不存在时默认为0,所以第一次递增之后是1。当建的类型不是整数时会提示错误。
- 增加指定的整数
INCRBY key increment
例:INCRBY num 2
(interger) 5
- 减少指定的整数
DECR key
DECRBY key increment.
- 增加浮点数
INCRBYFLOAT key increment
例:
INCRBYFLOAT foo 1.2
“1.2”
INCRBUFLOAT foo -1.2
“0”
- 向尾部追加值
APPEND key value
SET word hello
“OK”
APPEND word world
(integer) 10
GET word
“helloworld”
注意:如果APPEND 时不存在该建 则该键会被设置为 “world”,APPEND 的value可以用双引号。
- STRLEN key
SET key “你好世界”
OK
STRLEN key
(integer) 12
字符串类型可以存储二进制数据,所以它可以存储任何编码的字符串。例子中Redis接收到的是使用UTF-8编码的中文,由于“你好世界”四个字的UTF-8编码的长度都是3,所以此例中会返回12
- 同时设置和获取多个键值
MSET key value [key value...]
MGET key [key ...]
例:
127.0.0.1:6379> MSET t1 10 t2 "hello"
OK
127.0.0.1:6379> MGET t1 t2
1) "10"
2) "hello"
J. 位操作
GETBIT key offset
SETBIT key offset
BITCOUNT key [start] [end]
BITTOP operation destkey key [key ...]
一个字节由8个二进制位组成,字符在redis中会以ascii码存储。
例:
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> GETBIT foo 0
(integer) 0
127.0.0.1:6379> GETBIT foo 6
(integer) 1
127.0.0.1:6379> SETBIT foo 6 0
(integer) 1
127.0.0.1:6379> SETBIT foo 7 1
(integer) 0
127.0.0.1:6379> GET foo
"aar"
127.0.0.1:6379> BITCOUNT foo
(integer) 10
127.0.0.1:6379> BITCOUNT foo 0 1
(integer) 6
127.0.0.1:6379> SET foo1 bar
OK
127.0.0.1:6379> BITOP OR foo foo1
(integer) 3
该图为bar三个字符ascii 码的二进制内容。
命名:虽然Redis对于建的命名没有强制要求,但比较好的方式是使用“对象类型:对象ID:对象属性”来命名一个建。如使用键user:1:friends来存储ID为1的用户的好友列表。对于多个单词则推荐使用“.”分隔,一方面是沿用以前的习惯(Redis以前版本的键名不能包含空格等特殊字符),另一方面是在redis-cli中容易输入,无需使用双引号包裹。另外为了日后维护方便,键的命名一定要有意义,如u:1:f的可读性显然不如user:1:friends好(虽然采用较短的名称可以节省存储空间,但由于键值的长度往往远远大于键名的长度,所以这部分的节省大部分情况下并不如可读性来得重要。