Redis为什么是单线程
1.Redis是基于内存的操作,cpu不是速度的瓶颈.Redis的瓶颈最可能是服务器内存或网络带宽,且单线程易实现.关于Redis的性能,官网指出,普通笔记本电脑每秒可以处理几十万的请求.
2.单线程避免了不必要的上下文切换和竞争条件,不需要承受各种加锁同步操作带来的消耗.
3.可以通过在单机开启多个Redis示例的方式来充分利用多核cpu资源.
3.Redis采用IO多路复用技术来保证在多连接的情况下系统的高吞吐量.多路指多个socket连接,复用指复用一个线程.采用多路IO复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗).
提高Redis性能的一些措施
1.Master节点不要做任何持久化工作
2.如果数据比较重要,某个Slave开始AOF备份数据,策略为每秒备份一次
3.Master和Slave最好在一个局域网内,利于提高主从复制的速度和稳定性
4.尽量避免在压力很大的主库上增加从库
5.主从复制不要使用图状结构,使用单向链表结构更加稳定,即: Master<-Slave1<-Slave2<-Slave3…