Redis底层源码篇
文章平均质量分 78
Durian_piza
这个作者很懒,什么都没留下…
展开
-
Redis底层剖析——AOF
AOF重写缓冲区用来解决服务器当前的数据状态和重写后的AOF文件所保存的数据库状态不一致的问题(子进程在进行AOF重写期间,服务器还需要继续处理命令请求,而新的命令可能会对现有的数据库状态进行修改,从而使得服务器当前的数据库状态和重写后的AOF文件所保存的数据库状态不一致),这个缓冲区在服务器创建子进程后开始使用。被写入AOF文件的所有命令都是以Redis的命令请求协议格式保存的,因为Redis的命令请求协议是纯文本格式。因为AOF文件的内容会越来越多,为了减少AOF文件越来越大出现了AOF文件重写。...原创 2022-07-26 11:44:02 · 258 阅读 · 0 评论 -
Redis底层剖析——对象篇
字符串对象的编码可以是int、raw、embstr如果一个字符串对象保存的是整数值,并且这个整数值可以用long类型来表示,那么字符串对象会将整数值保存再字符串对象结构的ptr属性里面(将void*转换为long)...原创 2022-07-26 11:43:44 · 115 阅读 · 0 评论 -
Redis底层剖析——文件事件与时间事件
负责监听多个套接字,并向文件事件分派器传送那些产生了事件的套接字,尽管多个文件事件可能会并发出现,但I/O多路复用程序总是会将所有产生事件的套接字放到一个队列里面,然后通过这个队列,以有序、同步、每次一个套接字的方式像文件事件分派器传送套接字,在上个套接字产生的事件被处理完,I/O多路复用程序才会继续向文件事件分派下一个套接字。当被监听的套接字准备好执行连接、应答、写入、关闭等操作时,相应的文件事件就会产生,这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理这些事件。...原创 2022-07-26 11:42:23 · 256 阅读 · 0 评论 -
Redis底层剖析——主从复制
Sentinel通过主服务器发送INFO命令来获得主服务器属下所有从服务器的地址信息,并未这些从服务器创建相应的实例结构,Sentinel以每十秒一次的频率向被监视的主服务器和从服务器发送Info命令,当主服务器处于下线状态,或者Sentinel正在对主服务器进行故障扫描室,频率会改为一秒一次。可以监视多个嘱咐其或者其下的从服务器,可以在被监视的主服务器下线,自动将下线主服务器属下的某个从服务器升级为新的主服务器,代替旧的主服务器。1、主服务器的复制偏移量和从服务器的复制偏移量。3、服务器的运行ID。...原创 2022-07-26 11:41:59 · 111 阅读 · 0 评论 -
Redis底层剖析——Redis底层的数据结构
假设在一个压缩列表中,有多个连续的、长度介于250字节到253字节之间的节点e1-en,当插入新节点时,就会导致e1放不下需要额外扩张空间保存前一个节点的长度值,扩展后这个节点又大于了255字节,下下节点又进行空间重分配操作,造成连锁更新。压缩列表是列表键和哈希键的底层实现之一,当一个列表键只包含少量列表项,并且每个列表项要么就是最小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。2、尽量的节约内存,确保升级操作只会在有需要的时候进行,可以尽量节省内存。......原创 2022-07-26 11:41:34 · 277 阅读 · 0 评论