redis源码阅读笔记

Redis数据结构解析
在redis中一个数据库结构体是这样的
每个dict是一个hash表

typedef struct redisDb {
    
    dict *dict;                 /* The keyspace for this DB */
    dict *expires;              /* Timeout of keys with a timeout set */
    dict *blocking_keys;        /* Keys with clients waiting for data (BLPOP) */
    dict *io_keys;              /* Keys with clients waiting for VM I/O */
    dict *watched_keys;         /* WATCHED keys for MULTI/EXEC CAS */
    int id;
} redisDb;
// dict字段中存放以KEY值为键,以VALUE指针为值的HASH表项
dict根据类型的不同分为如下几种:

1、字符串(String)  操作 set  "key"  "value";             get     "key"

       键是key的字符串对象,value是value的字符串对象

2、哈希(Hashes)操作 hset    key  field  value

       当field的数量少于一定数量时   键是key的字符串对象,值是ZipMap的buffer     buffer中内容形如   field1:value1 field2:value2

       当field的数量多于一定量时,值升级为一个DICT对象指针,DICT中存放field和value的键值对

3、列表(Lists)操作 LPUSH key value

      键为key的字符串对象,值为Ziplist对象,value

4、集合(Sets)操作 sadd  setname  member

      键为key的字符串对象,值为dict对象

      dict的键为member,值为NULL指针

5、有序集合(Sorted Sets)

     键为key的字符串对象,值为ZIPlist对象

参考博文

http://www.searchtb.com/2011/05/redis-storage.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值