1、String—>key为String

  • 设置指定key的值
  • 在key不存在的时候设置key的值
  • 获取key的值
  • 设置多个指定key的值
  • 获取多个key的值
  • 获取key中存储字符的长度
  • 将key中存储的数字加1
  • 将key中存储的数字减1
  • 删除指定的key
  • 设置过期时间
    • 获取当前剩余时间

1.2、应用场景

  • 常规数据
    • 缓存session,token,图片地址,序列化后的对象
    • set、get
  • 需要计数的场景
    • 用户单位时间的请求树,页面单位时间的访问数
    • set、get、incr、decr
  • 分布式锁
    • 利用setnx key value 可以实现一个分布式锁

2、List

双向列表,支持反向查找和遍历,更方便操作,不过带来额外开销

  • 从左边添加元素可以多个
  • 从右边添加元素可以多个
  • 将指定索引的值设置为value
  • 移除左边元素
  • 移除右边元素
  • 获取列表元素的数量
  • 获取start 和 end之间的值

距离:

  • 最新文章,最新动态

3、Hash(哈希)

String类型的键值对映射表,特别适用于存储对象,后续操作可以直接修改对象中某个字段的值 image.png

  • 设置指定哈希表中指定字段的值
  • 只有在指定字段不存在的时候设定指定字段的值
  • 设置多个key-valus
  • 获取指定哈希中指定的字段
  • 获取指定哈希中一个或多个指定字段的值
  • 获取指定hash表中所有的键值对
  • 查看指定key中的field1是否存在
  • 删除一个或多个哈希字段
  • 获取指定哈希表中的字段数量
  • 对指定哈希中的字符做运算操作

应用:

  • 举例:用户信息、商品信息、文章信息、购物车信息。
  • 相关命令:HSET (设置单个字段的值)、HMSET(设置多个字段的值)、HGET(获取单个字段的值)、HMGET(获取多个字段的值)

4、集合

image.png

  • 添加元素可以多个
  • 获取所有元素
  • 获取指定集合的元素数量
  • 判断是否在集合中
  • 获取数据交集
  • 存储数据交集
  • 获取数据的并集
  • 存储数据的交集
  • 获取指定集合的差集
  • 存储指定集合的差集
  • 随机移除指定集合的一个或多个元素
  • 随机获取指定集合中指定数量的元素

    应用场景

  • 获取点赞的数量

    • SCARD
  • 获取共同好友,共同粉丝,共同关注等
    • 用交集,并集,差集
  • 随机抽奖
    • SPOP 抽取后移除 适合不允许重复中将
    • SRANDMEMBER 随机获取集合元素,允许重复中奖

Sorted Set

类似于Set,但是增加一个权重参数 score,使得集合中的元素能够按照score进行有序排列。 image.png

  • 向指定集合添加一个或多个元素
  • 获取数量
  • 获取指定有序集合中指定元素的score值
  • 存储交集
  • 存储并集
  • 存储差集
  • 获取指定有序集合 集合正序
  • 获取指定有序集合 集合倒序
  • 获取指定有序集合中指定元素的排名

    应用场景

  • 进行排行榜,微信步数,王者段位,话题热度等

    • ZRange ZRevRange ZRevRank