string

key-value 模型,应用场景:

  • 单独存储 Mysql 字段值,如 key 对应用户id,value 对应值
  • 存储 json 对象

Hash

是一个 string 类型的 field 和 value 的映射表,适合存储对象。应用场景:

  • 将每一条 Mysql 记录存到 Hash 记录

List

List 是按照插入顺序排列的字符串链表,可以在头尾插入新的元素(双向链表实现),应用场景:

  • 消息队列
  • 类似新闻的获取最新内容

SET

set 是一个没有排序、不重复的集合,添加、删除、获取时间复杂度都是O(1),基于哈希表实现。应用场景:

  • 共同好友:每个人的好友 id 放到集合内,然后取交集
  • 其他可以用交集、并集的需求

有序集合

在 set 的基础上,每个元素有一个 score ,插入的时候自动按照 score 排序。应用场景有:

  • 实现队列
  • 需要直接获取到最大值或者最小值的