|NO.Z.00057|——————————|BigDataEnd|——|Hadoop&Redis.V02|——|Redis.v02|RedisDB结构.v02|

一、RedisObject结构
### --- RedisObject结构

~~~     Value是一个对象
~~~     包含字符串对象,列表对象,哈希对象,集合对象和有序集合对象
### --- 结构信息概览

typedef struct redisObject {
    unsigned type:4;                # 类型 五种对象类型
    unsigned encoding:4;            # 编码
    void *ptr;                      # 指向底层实现数据结构的指针
    //...
    int refcount;                   # 引用计数
    //...
    unsigned lru:LRU_BITS;          # LRU_BITS为24bit 记录最后一次被命令程序访问的时间
    //...
}robj;
二、结构信息概览
### --- 4位type

~~~     type 字段表示对象的类型,占 4 位;
~~~     REDIS_STRING(字符串)、REDIS_LIST (列表)、REDIS_HASH(哈希)、
~~~     REDIS_SET(集合)、REDIS_ZSET(有序集合)。
~~~     # 当我们执行 type 命令时,便是通过读取 RedisObjecttype 字段获得对象的类型

127.0.0.1:6379> type a1
string
### --- 4位encoding
~~~     encoding 表示对象的内部编码,占 4 位
~~~     每个对象有不同的实现编码
~~~     Redis 可以根据不同的使用场景来为对象设置不同的编码,大大提高了 Redis 的灵活性和效率。
~~~     通过 object encoding 命令,可以查看对象采用的编码方式

127.0.0.1:6379> object encoding a1
"int"
### --- 24位LRU
~~~     lru 记录的是对象最后一次被命令程序访问的时间,( 4.0 版本占 24 位,2.6 版本占 22 位)。
~~~     高16位存储一个分钟数级别的时间戳,低8位存储访问计数(lfu : 最近访问次数)

lru----> 高16位: 最后被访问的时间
lfu----->低8位:最近访问次数
### --- refcount

~~~     refcount 记录的是该对象被引用的次数,类型为整型。
~~~     refcount 的作用,主要在于对象的引用计数和内存回收。
~~~     当对象的refcount>1时,称为共享对象
~~~     Redis 为了节省内存,当有一些对象重复出现时,
~~~     新的程序不会创建新的对象而是仍然使用原来的对象。
### --- ptr

~~~     ptr 指针指向具体的数据,比如:set hello world,ptr 指向包含字符串 world 的 SDS。

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(17)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示