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:适合二值状态的统计,比如签到打卡,要么打卡,要么未打卡等。
相关推荐
problc1 小时前
大模型API和秘钥获取地址
数据库·redis·缓存
Antonio9151 小时前
【Redis】Linux 配置Redis
linux·数据库·redis
minji...3 小时前
数据结构 堆(4)---TOP-K问题
java·数据结构·算法
落羽的落羽4 小时前
【C++】论如何封装红黑树模拟实现set和map
数据结构·c++·学习
一百天成为python专家5 小时前
K-近邻算法
数据结构·python·算法·pandas·近邻算法·ipython·python3.11
Antonio9155 小时前
【Redis】 Redis 基础命令和原理
数据库·redis·缓存
小新学习屋5 小时前
《剑指offer》-数据结构篇-哈希表/数组/矩阵/字符串
数据结构·leetcode·哈希表
爱装代码的小瓶子15 小时前
数据结构之队列(C语言)
c语言·开发语言·数据结构
半新半旧18 小时前
python 整合使用 Redis
redis·python·bootstrap
aramae18 小时前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法