字符串
字符串 最大长度512,二进制安全(无乱码问题,在内存中的数据,只有unlcode编码一总编码格式,不存在乱码,硬盘(GBK-UTF-8等))
根据保存的字符串内容自动变更,OBJECT encoding [key] #查看存储变量类型
int #保存整数形式的字符串
embstr #保存小于或等于44字节大小的字符串,内部类型提升效率
raw #保存大于44字节大小的字符串
列表list
列表list 2的32次方 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。底层双向链表(双指向),(java-arraylist,底层是数组一次性开辟内存,有下标写操作性能不佳)
rpush [key] [value] #从右边(r列表最后面,l列表最前面)添加一个或多个值
lrange [key] 0 -1 #过去 所有list元素 ,-1最后一个元素,-2倒数第二的元素
blpop testp 0 #获取第一个元素并移除,等待时间0代表无限单位秒
brpop testp 0 #获取最后一个元素并移除,等待时间0代表无限单位秒
brpoplpush list1 list1 #轮训队列, 获取列表一个元素并插入到另外一个列表
hashmap
散列hash 可以存储 2的32次方 - 1 键值对(40多亿)。
hset [hash] [key] [vale] #添加hash
hmset [hash] [key] [vale] [key] [vale] #添加多个hash
hget [hash] [key] #获取hash,vaule
hgetall [hash] #获取hash所有key-value
hdel [hash] [key] 删除指定hash,指定key
无序set
无序set,随机获取元素,合集,差集
sadd [key] [value] #添加一个或多个值
srandmember [key] [count] #从set随机读取元素,默认count=1,如果count>set上限,返回所有,count正数:读取数量不可重复;count负数:可重复次数
smembers [key] #查询set所有值
scard [key] #查询set成员数
spop [key] #随机删除一个元素
sismember [key] [value] #判断元素是否存在
sunion [set] [set] #返回所有给定集合的并集 ,重复只取一次
suniontore [set3] [set1] [set2] #返回所有给定集合的并集 ,并覆盖到set3
sdiff/sdiffstore #反回差集,和sunion 用法一样
有序set
有序set score分数排序,快速获取排行数据
zadd [key] [score] [value] #添加一个或多个元素,或者更新已存在元素的score排序
zrange [key] 0 -1 #查询有序set ,withscores:带出score可选
zrangebyscore [key] -inf +inf #按分值筛选数据, (小于5000分值的数据) -inf 5000 WITHSCORES,(大于等于5000到4000的护具) 5000 40000
zrank [key] #获取元素索引正序,从0开始
zrevrank [key] #获取元素索引倒叙,从0开始
zrem [key] [value] #删除指定元素
zremrangebyscore [key] 1 2 #根据分数删除
zremrangebybank [key] 1 2 #根据索引范围删除
hyperloglog
基数统计hyperloglog 2.9新增 可以统计2的64次方个不同元素基数(基数=不重复的),的累加器。 只做统计不存储
pfadd [key] [value] #添加基数统计
pfcount [key] [查询基数统计]
pfmerge [key3] [key1] [key2] #合并多个hyperlog 到key3
流Stream
xadd [queuename] * [keyname] [key] [valuename] [value] #添加队列,id*代表自动生成 , 例:xadd mytopic * acctid1 978 content1 40
xlen [queuename] #查看队列长度
xrange [queuename] - + [count] #查询队列正序,count可选代表读取个数, -代表最小值,+代表最大值,可替换成id范围,[id] + 查询大于等于, - [id] 查询小于等于
xrevrange [queuename] + - #查询队列倒叙
xdel [queuename] [id] #删除队列指定id元素
xread count 1 block 0 streams mytopic $ #获取队列并阻塞,阻塞时间 block 0代表无限时间单位毫秒,$代表最新数据