数据类型
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(有序集合)
使用场景
- String是简单的 key-value 类型,value 其实不仅可以是 String,也 可以是数字。常规 key-value 缓存应用;常规使用场景:比如本次项目中保存用户积分,推送标志等
- hash是一个 string 类型的 field 和 value 的映射表,hash 特别适合 用于存储对象,如果存储对象有修改,推送缓存的数据会进行覆盖,比如你最近做的营销活动项目,用来保存活动规则。
- list是一个链表。可以轻松实现最新消息排行榜等功能。另外一个 应用就是可以实现一个消息队列。可以利用 List 的 PUSH 操作,将任务 存在 List 中,然后工作线程再用 POP 操作将任务取出进行执行。也可以 通过 zset 构建有优先级的队列系统。此外,还可以将 redis 用作日志收 集器,实际上还是一个队列,多个端点将日志信息写入 redis,然后一个 worker 统一将所有日志写到磁盘。
- set是一个没有重复值得集合。可以存储一些集合性的数据。在最近的项目中用它保存了营销活动的商户范围,对于百万的商户使用set保存在一个集合里。并且Redis 还为集合提供了求交集、并集、差集等操作, 可以非常方便的实现如共同商户,某白名单商户。
- zset相比 set,zset 增加了一个权重参数 score,使得集合中的元素 能够按 score 进行有序排列。比如一个存储所有下级的交易笔数 sorted set, 其集合 value 可以是下级的商户编号,而 score 就可以是其交易笔数,这样 在数据插入集合的时候,就已经进行了天然的排序。也可以利用 zset 设 计带有优先级的队列。另外,还可以做排行榜应用,取 TOP N 操作。