typedef struct redisDb { dict *dict; //所有的键值对 dict *expires; //设置了过期时间的键值对 dict *blocking_keys; //被阻塞的key,如客户端执行BLPOP等阻塞指令时 dict *watched_keys; //WATCHED keys int id; //Database ID //... 省略了其他属性 } redisDb;
maxmemory <bytes>
typedef struct redisObject { unsigned type:4;//对象类型(4位=0.5字节) unsigned encoding:4;//编码(4位=0.5字节) unsigned lru:LRU_BITS;//记录对象最后一次被应用程序访问的时间(24位=3字节) int refcount;//引用计数。等于0时表示可以被垃圾回收(32位=4字节) void *ptr;//指向底层实际的数据存储结构,如:SDS等(8字节) } robj;
lfu_log_factor 10
lfu-decay-time 1
END 十期推荐 【201期】面试官:String长度有限制吗?是多少?还好我看过 【202期】面试官:GET 和 POST请求的本质区别是什么?(本质没区别) 【203期】吃透Java IO:字节流、字符流、缓冲流 【204期】面试官:你手写过堵塞队列吗? 【205期】面试官:数据量很大的情况下,对于分页查询你有什么优化方案吗? 【206期】面试官:你的项目是如何处理重复请求/并发请求的? 【207期】19张图带你梳理SpringCloud体系中的重要知识点! 【208期】敲黑板,也来谈如何设计一个秒杀系统(重点) 【209期】架构设计&分布式&数据结构与算法面试题(2020最新版) 【210期】面试官:说说常用的Redis和zk两种分布式锁的对比 ? ~