为实现redis异地数据中心实时同步功能,存在几种方案。其中一种方案是利用redis主从节点的异步拷贝,伪装一个slave节点,获取主节点的异步拷贝信息。将该异步拷贝信息同步到异地数据中心,从而实现redis集群异地同步。
本文的目的就是探究“伪装slave获取异步拷贝”的可行性与复杂度。
虽然redis文档有介绍主从以及异步拷贝,但是其实现并没有详细介绍,因此我阅读了redis中的cluster.c、replicate.c(redis版本为4.0.1),探查redis"主从拷贝"实现的细节,并使用netcat软件进行了一些实验。我们的最终结论是:实验结果反映“伪装slave获取异步拷贝”方案是可行的,并且复杂度可接受。
本文记录了redis集群扩容时会发生的slot迁移过程,同时记录了在迁移过程中查询key集群会如何响应。在文章开头,附带了一些redis集群技术的简单介绍(大部分摘自redis官方文档),帮助了解迁移过程。
... ➦这是一个新的、使用netty实现的、使用http协议进行混淆的socks5代理。解决了前作sogo项目因go内存回收机制/内存复用机制弱带来的cpu/内存占用高的问题。
... ➦减少造轮子,安装已有socks5、http代理。这里的ss5和squid是不能达到FQ的目的的,要实现这个目的,请查看之前的其他文章。
... ➦感谢刘港欢大学四年来1218天的陪伴
这是悦悦毕业论文的致谢中的一句话。一篇论文,洋洋洒洒,突然就写到了最后的致谢,这才恍然间发现,我们也过到了大学生涯的结尾。今天4月27日,我刚满22周岁不久。20多年的生命,我从来没有好好回忆过,思考过。想了一想,总归要抖一抖胸中不多的墨水写点什么。借着这个机会,要说说我生命里遇到的那些人,那些事。
... ➦tcp分包一般在pipeline的前部使用DelimiterBasedFrameDecoder, FixedLengthFrameDecoder, LengthFieldBasedFrameDecoder, or LineBasedFrameDecoder,分别适用于固定分隔符、固定长度帧、长度字段、换行符分割四种情况。但是,这四种不能涵盖tcp分包的全部情况,举个栗子:http协议的解析就不是上面四种中的一种。解析http协议或者其他自定义协议时,就需要用到ByteToMessageDecoder创建自己的“流式”解析器。netty的http解析器(HttpObectDecoder)就是继承ByteToMessageDecoder并override decode方法实现的。
... ➦