前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis对象类型、对象编码及对应关系

Redis对象类型、对象编码及对应关系

作者头像
用户8639654
修改2021-08-23 18:35:04
6790
修改2021-08-23 18:35:04
举报
文章被收录于专栏:云计算运维云计算运维

摘要

1、 Redis数据库中保存的键值对,键总是一个字符串对象,而值可以是字符串对象、列表对象、哈希对象、集合对象、有序集合对象;

Redis对象

Redis中对象都是由RedisObject结构表示,该结构中与数据保存有关的三个属性分别是type属性,encoding属性、ptr属性:

代码语言:javascript
复制
typedef struct redisObject{
    // 类型
    unsigned type:4;
    // 编码
    unsigned encoding:4;
    // 指向底层实现数据结构的指针
    void *ptr;
    // ... 其他
} robj;

类型

RedisObject对象的属性"type"记录了对象的类型,也就是常说的Redis支持的5种数据类型;

类型常量

对象的名称

type命令输出

REDIS_STRING

字符串对象

"string"

REDIS_LIST

列表对象

"list"

REDIS_HASH

哈希对象

"hash"

REDIS_SET

集合对象

"set"

REDIS_ZSET

有序集合对象

"zset"

编码和底层实现

encoding:对象使用的编码,也就是使用了什么数据结构作为对象的底层实现;

对象的ptr指针指向对象的底层实现数据结构,而这些数据结构由对象的encoding属性决定;

编码常量

编码对应的底层数据结构

REDIS_ENCODING_INT

long类型的整数

REDIS_ENCODING_ EMBSTR

embstr编码的简单动态字符串

REDIS_ENCODING_ RAW

简单动态字符串

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编码的简单动态字符串实现的字符串对象

REDIS_STRING

REDIS_ENCODING_ RAW

使用简单动态字符串实现的字符串对象

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

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

本文系转载,前往查看

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

本文系转载前往查看

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • Redis对象
  • 类型
  • 编码和底层实现
  • 类型和编码的对应关系
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档