Redis有哪几种数据类型?分别有什么应用场景?


一、Redis有哪几种数据类型?

Redis常见的数据类型有以下几种:

  • String(字符串):一般用于缓存JSON对象
  • List(列表):有序、可重复
  • Set(集合):无序、不重复
  • Hash(散列)
  • Zset(有序集合):有序、不重复
  • HyperLogLog(基数统计)
  • Bitmap(位图)
  • Geospatial(地理位置)

二、Redis的数据类型分别有什么应用场景?

String(字符串)

  • 分布式锁:具体可参考文章《如何实现一个分布式锁?》
  • 单一对象缓存:存储单一对象用(如商品信息的key为商品id,value为商品信息)
  • 计数:通过incr命令实现原子性自增,可用于如文章阅读量等计数场景

List(列表)

  • 消息队列:可以通过LPUSHRPOP实现消息队列的入队和出队,也可以通过BRPOP实现阻塞入队和出队
  • 列表:如文章列表、图片列表等

Set(集合)

  • 去重:可以利用Set去重特性做数据存储,如文章点赞列表、用户关注列表等
  • 需要用到交集、并集等场景Set提供了交集SINTER、并集SUNION等命令,可用在一些需要计算的场景,如共同关注(交集)、共同好友(交集)等

Hash(散列)

  • 对象信息缓存Hash查询效率高,用于一些kv类型的场景查询,如用户信息(用户id->用户消息)、购物车信息(商品id->商品信息)等

Zset(有序集合)


BitMap(位图)

  • 签到统计:根据用户每天的签到情况,在BitMap上做几路(用1和0)。优点是内存使用少

文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录