09 2021 档案
摘要:数据持久化 RDB持久化 RDB持久化通过Save或者BgSave命令来触发,其中Save命令使用服务器进程会阻塞客户端的读写命令,而BgSave命令则是派生了一个子进程去处理保存的操作,客户端在这期间仍然可以进行读写操作。 RDB和AOF同时开启的情况下,服务器会优先读取AOF文件,如没有开启AO
阅读全文
摘要:Redis数据库 Redis将数据库结构保存在RedisServer数据结构中的db数组中,数组大小由RedisServer结构中的dbnum决定,dbnum的默认大小为16。结构如下: class RedisServer { int dbnum; RedisDb[] db; } 而对于客户端而言,
阅读全文
摘要:概述 Redis并没有使用基础数据结构去实现键值数据库,而是基于数据结构封装了一个个对象。 类型和编码 由于Redis是键值数据库,所以每次存储数据时,至少包含两个对象,即K、V对应的对象。其数据结构如下所示 class RedisObject{ // 类型 int type; // 编码 int
阅读全文
摘要:看书小技巧:看前看看豆瓣评分,虽然不能完全参考,但能避免一些写的很晦涩的书。 1.Spring揭秘。虽然是基于Spring2的书籍但书的编排很好,豆瓣评分9.1,个人认为最好的Spring源码中文书籍,踩过坑后的结论 2.MySQL是怎样运行的、MySQL技术内幕:InnoDB存储引擎。前者由浅入深
阅读全文
摘要:SDS SDS是Redis中String的底层数据结构,数据结构如下,SDS保留了传统的C字符串表达方式即数组的最后一个元素是'/0'结尾。此外还添加了两个字段len和free,其中len表示字符串长度,free代表空闲空间。 class sds { int len; int free; char[
阅读全文