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:适合二值状态的统计,比如签到打卡,要么打卡,要么未打卡等。
相关推荐
cpp_250113 分钟前
P1910 L 国的战斗之间谍
数据结构·c++·算法·题解·洛谷·背包dp
楼田莉子21 分钟前
同步/异步日志系统:工具类以及日志的简单模块
linux·服务器·数据结构·c++
Severus_black1 小时前
C实现双向链表和相关函数!巨详细!
c语言·数据结构·链表·list
_深海凉_1 小时前
LeetCode热题100-移除元素
数据结构·算法·leetcode
Makoto_Kimur1 小时前
Java Scanner 的 ACM 常用输入模板
java·数据结构·算法
m0_716765231 小时前
数据结构三要素、时间复杂度计算详解
开发语言·数据结构·c++·经验分享·笔记·算法·visual studio
网安INF1 小时前
数据结构第二章复习:线性表
java·开发语言·数据结构
北顾笙9801 小时前
day21-数据结构力扣
数据结构
csuzhucong1 小时前
puzzle(0334)双面数局
数据结构·算法
Chasing Aurora1 小时前
整理常用的开发工具使用问题和小贴士(二)——软件和浏览器
redis·python·mysql·maven