redis

调查redis的protocal error

去年年底封测的第一个晚上,晚高峰时候,本来一切平和。但是在毫无征兆的情况下,突然线上redis断了。检查了机房连接没有问题,并且线上10多个实例,只有一台机器的redis断掉了。十分诡异!排查了一个小时没有任何结果,此次问题造成了大概800人回档。对于当时近万人的同时在线,还算损失比较小。

Redis底层协议

最近读到官网的一篇文章 https://redis.io/topics/protocol, 主要是描述了一下redis在通讯协议。忽然觉得豁然开朗:redis作为作为一个内存数据库,其实其本质也是一个服务器而已。监听在6379(默认)接口,然后定义了一套自己的命令方便调用者使用。

其实市面上的主流第三方客户端都会遵守这套协议。只不过实现的语言不一样而已。这里试着分析这套协议,并且写一个简单的“redis客户端”。