Redis如何选择数据结构

Redis 常用的数据结构一共有五种:string、hash、list、set、zset(sorted set)。

大多数场景下使用 string 都可以去解决问题。但是,这并不一定是最优的选择。

下面,简单说明下它们各自的适用场景:

  • string:单个的缓存结果,不与其他的 KV 之间有联系
  • hash:一个 Object 包含有很多属性,且这些属性都需要单独存储。注意:这种情况不要使用 string,因为 string 会占据更多的内存
  • list:一个 Object 包含很多数据,且这些数据允许重复、要求有顺序性
  • set:一个 Object 包含很多数据,不要求数据有顺序,但是不允许重复
  • zset:一个 Object 包含很多数据,且这些数据自身还包含一个权重值,可以利用这个权重值来排序

另外Redis还提供了几种的扩展类型,如下:

  • HyperLogLog:适合用于基数统计,比如PV,UV的统计,存在误差问题,不适合精确统计。
  • BitMap:适合二值状态的统计,比如签到打卡,要么打卡,要么未打卡等。
相关推荐
a_j58几秒前
算法与数据结构(环形链表)
数据结构·链表
tekin2 小时前
Python 高级数据结构操作全解析:从理论到实践
数据结构·python·集合set·高级数据结构·集合操作·队列操作·堆操作
居然有人6543 小时前
23贪心算法
数据结构·算法·贪心算法
重生之我是冯诺依曼3 小时前
数据结构绪论
数据结构
MelonTe3 小时前
使用Go复刻skiplist核心功能
redis·golang
左灯右行的爱情4 小时前
Redis-事务
数据库·redis·bootstrap
h^hh4 小时前
洛谷 P3405 [USACO16DEC] Cities and States S(详解)c++
开发语言·数据结构·c++·算法·哈希算法
重生之我要成为代码大佬4 小时前
Python天梯赛10分题-念数字、求整数段和、比较大小、计算阶乘和
开发语言·数据结构·python·算法
Dreams°1234 小时前
【透过 C++ 实现数据结构:链表、数组、树和图蕴含的逻辑深度解析】
开发语言·数据结构·c++·mysql
guihong0045 小时前
深入理解Redis:从线程模型到应用场景的全面解析
数据库·redis·缓存