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

应用场景

  • 消息队列
相关推荐
+VX:Fegn089510 分钟前
计算机毕业设计|基于springboot + vueOA工程项目管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
郝学胜-神的一滴20 分钟前
Linux进程与线程控制原语对比:双刃出鞘,各显锋芒
linux·服务器·开发语言·数据结构·c++·程序人生
wang60212521825 分钟前
阿里云存储的下载验证
数据库·阿里云·fastapi
独自破碎E44 分钟前
Spring Boot工程启动以后,怎么将数据库中已有的固定内容打入到Redis缓存中?
数据库·spring boot·缓存
javachen__1 小时前
341-十道经典程序设计题目
数据结构·c++·算法
策知道1 小时前
从“抗旱保苗”到“修渠引水”:读懂五年财政政策的变奏曲
大数据·数据库·人工智能·搜索引擎·政务
深圳市恒星物联科技有限公司1 小时前
恒星物联亮相湖南城市生命线安全工程培训会展会
大数据·数据库·物联网
此生只爱蛋1 小时前
【Redis】数据类型补充
数据库·redis·缓存
残雪飞扬1 小时前
MySQL 8.0安装
数据库·mysql
zgl_200537791 小时前
ZGLanguage 解析SQL数据血缘 之 提取select语句中的源表名
大数据·数据库·c++·数据仓库·sql·数据库开发·etl