一、字符串
set key value [ex 秒数] / [px 好秒数] [nx]/[xx]
注意:ex,px同时设置得话,以px为准
demo:set name aaa ex 10 px 1000 实际上的有效期是1000毫秒
nx:表示key不存在时,执行操作
xx:表示key存在时,执行操作
mset multi set,一次性设置多个键值 demo:mset key1 v1 key2 v2 ... keyn vn
mget key1 key2 ...keyn 一次性获取多个key的值
setrange key offset value 作用:把字符串的offset偏移字节,改成value
redis 127.0.0.1:6379> set greet hello
OK
redis 127.0.0.1:6379> setrange greet 2 x
(integer) 5
redis 127.0.0.1:6379> get greet
"hexlo"
redis 127.0.0.1:6379>
如果偏移量>字符长度,该字符串自动补0x00
getrange key start stop
作用:获取字符串中[start,stop]范围的值和PHP中substr效果一致(下标,左侧从0开始,右侧从-1开始)
getset key newvalue
获取并返回旧值并返回新值
redis 127.0.0.1:6379> set status sleep
OK
redis 127.0.0.1:6379> getset status 'wake up'
"sleep"
redis 127.0.0.1:6379> get status
"wake up"
incr decr 自增和自减 1
incrby key number decrby key number 自定义数字
**incrbyfloat/decrbyfloat key float **
setbit key offset value
设置offset对应二进制位上的值,返回该位上的值
ascii
A 65 0100 0001
a 97 0110 0001
redis 127.0.0.1:6379> set char A
OK
redis 127.0.0.1:6379> setbit char 2 1
(integer) 0
redis 127.0.0.1:6379> get char
"a"
redis 127.0.0.1:6379> setbit char 2 0
(integer) 1
redis 127.0.0.1:6379> get char
"A"
二、链表 link
lpush key value
作用:把值插入到链接头部 rpush 反之
rpop key
作用:返回并删除链表尾部元素 lpop 反之
lrange key start stop
作用:返回链表中[start,stop]中的元素。左数从0开始,右数从-1开始
lrem key count value 作用:从key链表中删除value值;删除count的绝对值个value后结束 count>0 从表头开始 <0 从表尾开始
redis 127.0.0.1:6379> lpush anwser a b c d a a a
(integer) 7
redis 127.0.0.1:6379> lrange anwser 0 -1
1) "a"
2) "a"
3) "a"
4) "d"
5) "c"
6) "b"
7) "a"
redis 127.0.0.1:6379> lrem anwser 2 a
(integer) 2
redis 127.0.0.1:6379> lrange anwser 0 -1
1) "a"
2) "d"
3) "c"
4) "b"
5) "a"
ltrim key start stop
作用:剪切key对应的链接,切[start,stop]一段,并把该字段重新赋值给key
lindex key index
返回index索引的值
llen key 计算链表的元素个数
linsert key after|before search value
三、集合 无序性 确定性 唯一性
sadd key value1 value2
作用:往集合中增加元素
srem value1 value2
删除集合中集为value1 value2的元素 返回值:忽略不存在的集合后,真正删除的元素的个数
spop key
返回并删除集合中key中1个随机元素
srandmember key
返回集合key中随机的一个元素
sismember key value
判断value是否在key集合中
smembers key 查看key的值
scard key 返回集合中元素的个数
//### 多个集合操作 smove key key1 value
将key中的value移动到key1中
sinter key1 key2 key3
求出三个集合的并集,并返回
sunion key1 key2 key3
求出三个集合的交际 并返回
sdiff key1 key2 key3
求出三个集合的差集
四、有序集合 order set
zadd key score1 value1 score2 value2 ......
zrange key start stop 查看所有的
zrange key start stop withscores 查看所有的(包括排名)
zrank key member 查询这个值在集合中的排名
zrevrank key member 查询member的排名(降序)
zrem key value1 value2 ...
zremrangebyscore key min max 根据分数删除,删除分数在min和max之间的
zremrangebyrank key [第几名,第几名] 按照排名删除
zcard key 统计当前key的元素个数
zcount key min max 统计这个分数之间的个数
zinterstore destination numkeys key1 [key2......]
[WEIGHTS weight [weight ...]]
[AGGREGATE SUM|MIN|MAX]
求key1,key2的交集,key1,key2的权重分别是weight1,weight2;聚合方法用:sum|min|max;聚合的结果保存在dest集合内
redis 127.0.0.1:6379> zadd lisi 3 cat 5 dog 6 pig
(integer) 3
redis 127.0.0.1:6379> zadd wangwu 2 cat 6 dog 8 pig
(integer) 3
redis 127.0.0.1:6379> zadd wangwu 1 rabbit
(integer) 1
redis 127.0.0.1:6379> zinterstore result lisi wangwu aggregate sum
(error) ERR value is not an integer or out of range
redis 127.0.0.1:6379> zinterstore result 2 lisi wangwu aggregate sum
(integer) 3
redis 127.0.0.1:6379> zrange result 0 -1 withscores
1) "cat"
2) "5"
3) "dog"
4) "11"
5) "pig"
6) "14"
五、hash结构 类似PHP的关联数组
hset key field value 设置单个值
hmset key field value field1 value1 设置多个值
hsetall key 查看当前key的值
hget key field 获取当前key下当前名称的值
hgetall key 获取所有的数据
hdel key field 删除
hlen key 返回key中的个数
hexists key field 查看当前key有没有这个字段
hincrby key field integer 把key中的field域的值增长
hincrbyfloat key field float
hkeys key 返回key中所有的field
hvals key 返回key中所有的value