Redis基本数据结构

String

数据结构

  • 如果存储的是整型,直接把值存储在RedisObject里面, 数据类型为int。
  • 如果存储的数据量不大(早期版本,32字节),采用动态字符串SDS存储,存储类型是embstr。
  • 超过32字节,采用动态字符串SDS进行存储,存储类型是raw。

embstr和raw类型的区别在于,RedisObject和embstr是连续存储的,只需要访存一次,而raw是分开存储的,需要访存两次。

应用场景

  • 共享session或者token
  • incr 计数
  • setnx 实现分布式锁

Hash

数据结构

  • 数据量不大时采用压缩列表进行存储
  • 否则采用与hashmap类型的存储结构:数组+链表

与HashMap的存储结构有何不同?

  • Redis的Hash字典的值只能存储字符串
  • Redis的Hash在rehash时采用渐进式Hash

应用场景

  • 缓存对象
  • 存储商品信息

Set

数据结构

  • 无序唯一
  • 采用整数集合
  • Hash表

应用场景

  • 点赞
  • 共同关注

Zset

数据结构

  • 数据量较小时,采用压缩列表
  • 采用跳表存储

应用场景

  • 排序

List

数据结构

  • 相当于Java的LinkedList
  • 数据量较小时,采用压缩链表
  • 否则采用快速链表

应用场景

  • 消息队列
相关推荐
tod1133 分钟前
Redis 主从复制与高可用架构:从原理到生产实践
数据库·redis·架构
l1t15 分钟前
DeepSeek辅助生成的PostgreSQL 表结构设计幻灯片脚本
数据库·postgresql
橘子1332 分钟前
redis哨兵
数据库·redis·缓存
yzs8733 分钟前
OLAP数据库HashJoin性能优化揭秘
数据库·算法·性能优化·哈希算法
与衫41 分钟前
如何将SQLFlow工具产生的血缘导入到Datahub平台中
java·开发语言·数据库
季明洵1 小时前
数据在内存中的存储
数据结构·算法·c
l1t1 小时前
DeepSeek辅助生成的PostgreSQL 执行计划分析幻灯片脚本
数据库·postgresql
阿昭L1 小时前
AVL树及其计算
数据结构
_千思_1 小时前
【小白说】数据库系统概念 5
数据库
014-code1 小时前
Redis 分布式锁:从 0 到 1 完整演变
数据库·redis·分布式