首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >redis常见的数据类型及其底层结构和应用场景

redis常见的数据类型及其底层结构和应用场景

作者头像
opencode
发布2022-12-26 15:31:17
发布2022-12-26 15:31:17
3240
举报
文章被收录于专栏:知识同步知识同步

redis知识归纳

redis有如下几种数据类型

类型常量

对象

REDIS_STRING

字符串对象

REDIS_LIST

列表对象

REDIS_HASH

哈希对象

REDIS_SET

集合对象

REDIS_ZSET

有序集合对象

对于redis保存的键值来说,键总是一个字符串对象,值可以是其他类型

每种类型其实不仅限于一种数据结构,例如哈希集合有压缩列表的实现,也有哈希表的实现,这个取决于编码类型encoding

不同的编码类型对应不同的数据结构

编码类型

底层数据结构

REDIS_ENCODING_INT

long类型的整数

REDIS_ENCODING_EMBSTR

embstr编码的简单动态字符串(SDS)

REDIS_ENCODING_RAW

简单动态字符串(SDS)

REDIS_ENCODING_HT

字典

REDIS_ENCODING_LINKEDLIST

双端链表

REDIS_ENCODING_ZIPLIST

压缩列表

REDIS_ENCODING_INTSET

整数集合

REDIS_ENCODING_SKIPLIST

跳表和字典

而每种对象会对应不止一种编码方式

如下表:

类型常量

编码方式

底层数据结构

REDIS_STRING

REDIS_ENCODING_INT

使用整数实现的字符串

REDIS_STRING

REDIS_ENCODING_EMBSTR

使用embstr编码的SDS实现的字符串

REDIS_STRING

REDIS_ENCODING_RAW

使用SDS实现的字符串

REDIS_LIST

REDIS_ENCODING_ZIPLIST

使用压缩列表实现的列表

REDIS_LIST

REDIS_ENCODING_LINKEDLIST

使用双端链表实现的列表

REDIS_HASH

REDIS_ENCODING_ZIPLIST

使用压缩列表实现的哈希

REDIS_HASH

REDIS_ENCODING_HT

使用字典实现的哈希

REDIS_SET

REDIS_ENCODING_INTSET

使用整数集合实现的集合

REDIS_SET

REDIS_ENCODING_HT

使用字典实现的集合

REDIS_ZSET

REDIS_ENCODING_ZIPLIST

使用压缩列表实现的有序集合

REDIS_ZSET

REDIS_ENCODING_SKIPLIST

使用跳表和字典实现的有序集合

总结

如果一个字符串用来表示整数的时候,保存的形式是long,会将字符串转化为整型保存 其他情况字符串一般是使用SDS(简单动态字符串)表示

列表可以是压缩列表或者是双端链表

哈希可以是压缩列表或者是字典

集合可以是整数集合或者是字典

有序集合可以是压缩列表或者是跳表

对于底层数据结构的详细介绍在这里

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • redis有如下几种数据类型
  • 不同的编码类型对应不同的数据结构
  • 而每种对象会对应不止一种编码方式
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档