面试官:如何保证redis的高并发?
首先呢要讲一下,redis的高并发意思就是有多个请求打过来,你怎么样才可以保证多个请求同时都可以有效率的响应回去啊?
我:使用主从架构,一主多从,主负责写,从负责读,很多项目其实就已经足够了,单机几万QPS,多个从实例可以提供每秒10w的QPS(QPS就是每秒的请求)。
面试官:那么如何保证redis的高可用呢?
这里注意了,这个高可用呢,例如主节点突然宕机了,这可如何是好啊?我写请求是不是都得挂了啊?
我:+一个哨兵面试,slave node 通过选举成为新的 master node 。懒得说了,真的,这就是主备切换。
-------------------------------------------------
还有一个需要注意的问题,就是呢,我们的master node(节点) 接收完成一个写请求后,正要同步到我们的从节点,此时发生了故障,数据是不是丢失了呢?
这一点很简单,6379.conf(老版),redis.windows.conf
min-slaves-to-write 1
min-slaves-max-lag 10 6379.conf
1个slave node的数据复制和同步延迟都不能超过10秒,如果一旦所有的从节点都超过了10秒钟,那么master不再接收任何请求了
通过两个参数就解决了。