Redis拾遗
Posted fly-to-the-sky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis拾遗相关的知识,希望对你有一定的参考价值。
书接上文,继续说说redis的基本特性。
列表:
- 添加操作:
- rpush key value [value ...]
- lpush key value [value ...]
- 取元素:
- lrange key startindex endindex(lrange key 0 -1可取所有元素)
- 在元素前或后添加元素:
- linsert key before|after pivot value 返回值代表当前命令的长度
- 取指定索引下标元素
- lindex key index
- 获取列表长度
- llen key
- 删除操作:
- lpop key
- rpop key
- 删除指定元素
- lrem key count value
- lrem会从列表中查找等于value的元素根据count不同分情况删除:count>0,从左到右删除count个元素,count<0,从右到左删除count个元素,count=0,删除所有。
按照索引范围修剪列表 - lrem key count value
- ltrim key start end
- 修改:
- lset key index newValue
- 阻塞操作:
- blpop key [key ...] timeout
- brpop key [key ...] timeout
- timeout为阻塞时间,timeout=0则一直阻塞,直到列表中有数据
- 使用场景:
- 消息队列:lpush+brpop组合实现
- 栈:lpush+lpop
- 队列:lpush+rpop
- 有限集合:lpush+ltrim
集合:
- 添加元素:sadd key element [element ...] 返回添加成功的个数
- 删除元素:srem key element [element ...] 返回删除成功的个数
- 计算元素个数:scard key 时间复杂度:O(1)利用的是Redis内部的变量
- 判断元素是否在集合中:sismember key element
- 随机从集合返回指定元素个数:srandmember key [count] count不写默认为1
- 从集合随机弹出元素:spop key
- 获取所有元素:smembers key
- 集合间操作:
- 求交集 :sinter key [key ...]
- 求并集:sunion key [key ...]
- 求差集:sdiff key [key ...]
- 将交集、并集、差集结果保存:sinterstore destination key [key ...] 差集并集同理。。
- 使用场景:
- 兴趣标签
有序集合:
以上是关于Redis拾遗的主要内容,如果未能解决你的问题,请参考以下文章