set类型
-
新的存储需求,存储大量的数据,在查询方面提供更高的效率。
-
需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询。
-
set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的
set 类型数据的基本操作
- 添加数据
sadd key member1 [member2]
- 获取全部数据
smembers key
- 删除数据
srem key member1 [member2]
- 获取集合数据总量
scard key
- 判断集合中是否包含指定数据
sismember key member
set数据类型的扩展操作
业务场景
每位用户首次使用今日头条时会设置3项爱好的内容,但是后期为了增加用户的活跃度、兴趣点,必须让用户
对其他信息类别逐渐产生兴趣,增加客户留存度,如何实现?
业务分析
- 系统分析出各个分类的最新或最热点信息条目并组织成set集合
- 随机挑选其中部分信息
- 配合用户关注信息分类中的热点信息组织成展示的全信息集合
解决方案
-
随机获取集合中指定数量的数据
-
随机获取集合中的某个数据并将该数据移出集合
Tips 8: -
redis 应用于随机推荐类信息检索,例如热点歌单推荐,热点新闻推荐,热卖旅游线路,应用APP推荐, 大V推荐等。
-
求两个集合的交、并、差集
sinter key1 [key2]
sunion key1 [key2]
sdiff key1 [key2] -
求两个集合的交、并、差集并存储到指定集合中
sinterstore destination key1 [key2]
sunionstore destination key1 [key2]
sdiffstore destination key1 [key2] -
将指定数据从原始集合中移动到目标集合中
smove source destination member
Tips 9
- redis 应用于同类信息的关联搜索,二度关联搜索,深度关联搜索
- 显示共同关注(一度)
- 显示共同好友(一度)
- 由用户A出发,获取到好友用户B的好友信息列表(一度)
- 由用户A出发,获取到好友用户B的购物清单列表(二度)
- 由用户A出发,获取到好友用户B的游戏充值列表(二度)
set类型数据操作的注意事项
- set类型不允许数据重复,如果添加的数据在set中已经存在,将只暴露一份。
- set虽然和hash的存储结构相同,但是无法启用hash中存储值的空间。
Tips10
- redis应用于同类型数据的快速去重。
Tips
- redis 应用于基于黑名单与白名单设定的服务控制。
sorted_set类型
- 新的存储需求:数据排排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式。
- 需要的存储结构:新的存储模型,可以保存可排序的数据
- Sorted_set类型:在set的存储结构基础上添加可排序字段。
sorted_set 类型数据的基本操作
sored_set 类型数据的扩展操作
sored_set 类型数据操作的注意事项
通用命令
key通用操作
key特征
key基本操作
key扩展操作(时效性控制)
- 获取时间 -2获取不到 、-1获取到了没时间、正常的设计时间