redis数据结构

101 阅读1分钟

String字符串类型

Redis的String能表达3种值的类型:字符串、整数、浮点数 100.01 是个六位的串

image.png

应用场景

  1. key和命令是字符串

  2. 普通的赋值

  3. incr用于乐观锁

incr:递增数字,可用于实现乐观锁 watch(事务)

  1. setnx用于分布式锁

当value不存在时采用赋值,可用于实现分布式锁

list列表类型

  • list列表类型可以存储有序、可重复的元素
  • 获取头部或尾部附近的记录是极快的
  • list的元素个数最多为2^32-1个(40亿)

image.png

应用场景

  1. 作为栈或队列使用列表有序可以作为栈和队列使用
  2. 可用于各种列表,比如用户列表、商品列表、评论列表等。

set集合类型

  • Set:无序、唯一元素
  • 集合中最大的成员数为 2^32 - 1

image.png

应用场景:

  • 适用于不能重复的且不需要顺序的数据结构

比如:关注的用户,还可以通过spop进行随机抽奖

sortedset有序集合类型

  • SortedSet(ZSet) 有序集合: 元素本身是无序不重复的
  • 每个元素关联一个分数(score),可按分数排序,分数可重复

image.png

应用场景:

由于可以按照分值排序,所以适用于各种排行榜。比如:点击排行榜、销量排行榜、关注排行榜等。

hash类型(散列表)

Redis hash 是一个 string 类型的 fifield 和 value 的映射表,它提供了字段和字段值的映射。每个 hash 可以存储 2^32 - 1 键值对(40多亿)。

image.png

image.png

应用场景:

对象的存储 ,表数据的映射