Redis(7) —— Redis 中的五大对象

本文详细介绍了Redis中的五大对象:字符串、列表、哈希、集合和有序集合,及其各自的编码方式,包括int、raw、embstr、ziplist、linkedlist、hashtable等,探讨了不同编码在不同场景下的应用和优化策略。
摘要由CSDN通过智能技术生成

Redis 中存在五种底层的数据结构:简单动态字符串(SDS)、双端链表、字段、压缩列表、整数集合
Redis 中由五种基本对象:字符串对象、列表对象、哈希对象、集合对象和有序集合对象
Redis 中的基本对象的回收基于引用计数法

1. 对象的类型和编码

Redis 中的对象都是由 RedisObject 结构表示,该结构保存着三个属性:type 属性、encoding 属性 和 ptr 属性

typedef struct RedisObject{
    //类型
    unsigned type:4;
    
    //编码
    unsigned encoding:4;
    
    //指向底层数据结构的指针
    void *ptr;
}

通过 TYPE 命令,可以查看 Reids 的值对象类型(五种对象中的一种)

通过 OBJECT ENCODING 命令可以查看数据库键的值对象的编码(key-value 中 value 的编码,而编码决定底层数据结构的种类)


对象的五种基本类型:

类型常量 对象的名称 TYPE 命令的输出
REDIS_STRING 字符串对象 “string”
REDIS_LIST 列表对象 “list”
REDIS_HASH 哈希对象 “hash”
REDIS_SET 集合对象 “set”
REDIS_ZEST 有序集合对象 “zset”


不同类型和编码的对象:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值