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