1. 多线程网络IO
采用epoll的机制,实现一个Redis服务端接收多个客户端的并发网络IO请求(避免有时候Redis服务端处理速度快,而网络IO传输客户端请求慢,造成Redis CPU空闲),网络IO多线程连接,处理请求的还是单线程。
2. 客户端缓存
Redis服务端一次读取一定数据,将这些key-value缓存在客户端,下次客户端可以直接在自己内存中获取数据(当Redis中某些缓存在客户端的key-value值改变后会以广播形式通知相应的客户端,使得客户端内的数据缓存失效,客户端需要向Redis注册自己监听的数据)
3. 细粒度权限控制
像Linux操作系统一样可以创建多个子用户(Github团队成员权限分配),手动给每个用户分配相应的权限,这样可以限制一些人远程连接Redis后进行一些关键配置的更改。
4. RESP3通信协议
通信协议一般可以分为二进制字节码传输(直接通过TCP,UDP传输字节码),以及字符形式传输。RESP2后采用字符形式传输(如Http传输Json,xml等文本数据),3.0中可以在传输内容包头设置不同的标识字符来表示更多的传输数据类型(+,$, :, -, *)。
- PS: 一般MQ以及与硬件设备进行通信时选择TCP的字节码传输,网络带宽占用少,

本文探讨了如何通过epoll优化Redis的网络IO处理,实现多线程连接;介绍了客户端缓存机制,以及如何利用细粒度权限控制团队成员操作;涉及RESP3协议的改进和应用,同时比较了NVM内存与传统内存的优势,以及Memcached与RocksDB在不同场景的选用。最后讨论了Redis集群部署的选择及其扩展性对比。
最低0.47元/天 解锁文章
447

被折叠的 条评论
为什么被折叠?



