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

应用场景

  • 消息队列
相关推荐
岁岁种桃花儿1 分钟前
AI超级智能开发系列从入门到上天第六篇:自定义AI记忆持久化
数据库
北顾笙9801 分钟前
测开准备-day04数据结构力扣
数据结构·算法·leetcode
黄昏回响2 分钟前
计算机系统基础知识(补充篇):数据库——数据仓库、数据中台与大数据技术详解
大数据·数据库·数据仓库
sqyno1sky5 分钟前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
总有刁民想爱朕ha9 分钟前
数据库行统计和字典导出工具Web版
前端·数据库
知识分享小能手17 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB 知识点详解(1)
数据库·学习·mongodb
njidf20 分钟前
使用Python分析你的Spotify听歌数据
jvm·数据库·python
2301_7938046923 分钟前
数据分析与科学计算
jvm·数据库·python
jing-ya24 分钟前
day 60 图论part11
java·数据结构·算法·图论
常利兵25 分钟前
Java后端定时任务抉择:@Scheduled、Quartz、XXL - Job终极对决
java·数据库·sql