redis五种数据结构的使用场景

String-字符串

字符串类型是redis中最为基础的数据结构。

  • 存储最简单的key-value结构
  • value可以为字符串、整型或浮点型
  • 对于整型或浮点型可以执行自增或自减操作

使用场景

  • 常用的缓存功能:利用redis做缓存,配合其他数据库,可以大大加快系统的读写速度
  • 计数器:例如web应用,想要统计用户每日的点击量,只需要将用户ID加上时间戳做key,并在用户每次点击时,向redis发送INCR命令,执行一次自增即可。最终的数据结果可以在特点的时间点比如0点持久化到其他存储介质中。
  • 共享用户session:用户每次刷新页面,可能都需要重新登录或者读取cookie中的登录信息,也可以利用redis统一管理用户的session信息,只需要保证redis的高可用即可。

Hash-字典

  • hash类型用于存储对象,对象的结构为属性,值
  • 值的类型为string
  • 设置单个属性语法:hset key field value,设置多个属性语法:hmset key field1 value1 field2 value2….

使用场景

  • 存储用户信息,能够单独修改用户的某一属性信息

List-列表

  • redis使用的是双端链表实现的list
  • list的元素类型为string
  • 按照插入的顺序排序
  • 插入语法:lpush/rpush key value1 value2….
  • 弹出元素:blpop/brpop key index timeout

使用场景

  • 消息队列:可以利用redis 的*push的操作将任务存在list中,工作线程再用b*pop的操作取出任务执行
  • 文章列表或记录事件的timeline等:利用的redis的list存储不但有序,取出时使用*range命令可以按范围取出元素

Set-集合

  • 无序集合
  • 元素为string类型
  • 元素具有唯一性
  • 集合没有修改操作
  • 可以计算交集、并集,差集

使用场景

  • 计算共同好友,共同浏览过的商品等:例如将两个用户浏览过的商品集合做交集,即可得到共同浏览过的商品
  • 统计访问网站的所有独立IP
  • 好友推荐:利用用户的tag求交集,按照业务需求分析交集内容,可做好友推荐等类型功能

Zset-有序集合

  • sorted set,有序集合
  • 元素为string类型
  • 元素具有唯一性
  • 每个元素都会关联一个double类型的score,表示权重,会按权重从小到大排序
  • 没有修改操作

使用场景

  • 排行榜:自带去重排序功能,可以根据需求,比如使用点击量访问量等作为score
正文完
 
Dustin
版权声明:本站原创文章,由 Dustin 2020-01-28发表,共计990字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。