一、string
append key "hello" #追加字符串到key末尾,不存在则相当于set
strlen key #返回key内容的长度
incr key #key中数值增1
decr key #key中数值减1
incrby key 10 #key中数值增加10,相当于设置步长
decrby key 5 #key中数值减5,相当于设置步长
getrange key 0 3 #返回[0,3]字符串,长度是4
getrange key 0 -1 #返回全部,相当于get key
setrange key 1 xx #把1、2位置字符替换为xx
#存储对象
mset user:1:name zhangsan user:1:age 20
mget user:1:name user:1:age
使用场景
- 存储字符串
- 计数器、统计数据量
二、list
可以抽象成一个从左到右的双向链表
lpush list_key value1 #从左边放入value1进入list
rpush list_key value2 #从右边放入value2进入list
lrange list_key 0 -1 #查看list所有元素
lrange list_key 1 2 #查看list中[1,2]的元素,返回2个元素
lpop list_key value3 #从左边弹出一个元素,返回弹出的值
rpop list_key value4 #从右边弹出一个元素,返回弹出的值
lrem list_key 2 value5 #从list中删除2个value5的元素
ltrim list_key 1 2 #截取list,只保留原来list中[1,2]元素
rpoplpush listKey1 listKey2 #弹出listKey1右边元素,并从左放入listKey2
lset listKey 0 newValue #设置listKey索引0位置为newValue,即覆盖旧值,需要listKey存在且对应索引存在才可以设置,否则报错
linsert listKey before/after aValue newValue #在list中的aValue前或后插入newValue
三、set
sadd mySet value1 #添加元素到集合中
smembers mySet #返回set中所有元素
scard mySet #返回set中元素个数
sismember mySet value1 #判断value1是否存在于set中
spop mySet #随机弹出一个元素
srem mySet value1 #从set中移除value1
smove mySet mySet2 value1 #把mySet中value1移动到mySet2中
sdiff key1 key2 #key1与key2的差集
sinter key1 key2 #key1与key2的交集
sunion key1 key2 #key1与key2的并集
四、hash
hset myHash key1 value1 #设置hash的key-value
hget myHash key1 #获取hash的key1对应的value
hmset myHash key2 value2 key3 value #设置hash多个k-v
hmget myHash key2 key3 #获取hash多个key的值
hgetall myHash #获取hash中多有k-v
hkeys myHash #获取hash中所有key
hvalues myHash #获取hash中所有value
hincryby myHash key1 2 #hash中key1对应value数值加2,value可以是负数,相当于decr,因为hash没有对应的decr命令
hmset user:1 name tom age 20 #存放对象
五、sorted set
zadd mySet 1 key1 #添加key1到有序集合mySet中,分数1,添加成功返回1
zcard mySet #返回有序集合中元素个数
zcount mySet 1 2 #返回有序集合中分数在[1,2]区间中的元素个数
zrange mySet 0 -1 #返回有序集合中所有元素,按照分数升序返回
zrangebyscore mySet minScore maxScore #返回有序集合分数在区间[minScore, maxScore]里是元素,按照分数升序返回。
zrangebyscore mySet -inf +inf #返回有序集合中所有元素,按照分数升序返回
zrevrange mySet 0 -1 #返回有序集合中所有元素,按照分数降序返回
zrem mySet key1 #删除有序集合中key1元素
使用场景
- 排行榜,成绩排序
- 带权重的消息,比如普通消息1,优先消息2
以上