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
  • 数据量较小时,采用压缩链表
  • 否则采用快速链表

应用场景

  • 消息队列
相关推荐
ptc学习者4 分钟前
黑格尔时代后崩解的辩证法
数据库
代码游侠8 分钟前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite
阿里巴巴P8资深技术专家14 分钟前
基于 Spring AI 和 Redis 向量库的智能对话系统实践
人工智能·redis·spring
!chen28 分钟前
EF Core自定义映射PostgreSQL原生函数
数据库·postgresql
霖霖总总32 分钟前
[小技巧14]MySQL 8.0 系统变量设置全解析:SET GLOBAL、SET PERSIST 与 SET PERSIST_ONLY 的区别与应用
数据库·mysql
马克学长35 分钟前
SSM校园食堂订餐系统531p9(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·ssm 校园食堂订餐系统
alonewolf_9940 分钟前
深入剖析MySQL索引底层:B+树、联合索引与跳跃扫描原理全解
数据库·b树·mysql
想做后端的小C42 分钟前
408 数据结构:数据结构三要素——逻辑结构、物理(存储)结构和运算操作
数据结构
栈与堆44 分钟前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust
oMcLin1 小时前
如何在 AlmaLinux 9 上配置并优化 Redis 集群,支持高并发的实时数据缓存与快速查询?
数据库·redis·缓存