摘要:
上个文章说到了RDB的持久化的过程以及RDB的文件是如何进行保存的。 和RDB不同的是,AOF的操作是通过把指令一个个保存入文件的,进行载入的时候就是一个个的command进行读取,也就是模拟了一遍某时间段内的所有的操作。 由于Redis服务器进程就是一个事件循环,这个循环中的文件事件负责接受客户端 阅读全文
摘要:
Redis是一个键值对的服务器,默认16个数据库,每一个数据库都是基于内存的,一旦关机就会数据丢失,为了保证数据可以存在,这边使用了持久化技术RDB和AOF,先讲的是RDB。 RDB可以手动执行也可以根据配置周期性执行,RDB生成的文件是一个二进制的文件而且是经过压缩的。Redis服务器有RDB读取 阅读全文
摘要:
24章今天一定要弄到10章! Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组中的每个项都是一个redis.h/redisDb结构,每个redisDb都表示着一个数据库: 在redisServer使用一个数组来保存数据库。 在初始化的时候 阅读全文
摘要:
回忆下已经写过的数据结构:SDS,双向链表,整数数组,跳跃列表,压缩列表。 在Redis里面并没有直接使用这些,毕竟这些东西只是一个个的思想还是缺少了对业务上的定制化。例如缓存的生命。所以基于这些redis实现了一个对象系统,通过判断对象是属于which one来check 是否可以执行给定的命令。 阅读全文
摘要:
压缩列表是列表键和哈希键的底层实现之一,当一个列表键只包含少量的列表项,而且每个列表项都是小整数值或者长度比较小的字符串。那么就会使用压缩列表来进行列表键的底层实现。很明显在C的天下里面,int都要分位数,开发的人肯定是个极致思想的老铁。变态的压缩思想都来了,很多时候我们也在尽可能的去调整代码的深度 阅读全文