一 高并发
官方数据表示Redis读的速度是110000次/s,写的速度是81000次/s 。
redis尽量少写多读,符合缓存的适用要求。
单机redis支撑万级,如果10万+就需要用redis replication模式,也就是集群模式;
二 redis replication 模式
10万+的部署方式:开启主从模式(redis replication ),一主多从,开启读写分离;主负责写,从负责读;多个slave支持水平扩容。
master和多个slave的数据同步是异步进行。同步时,不会阻塞master,也不会阻塞slave(slave提供原副本服务);
三 持久化
因为存在数据的同步,master要开启持久化;如果不持久化,数据可能会丢失:
- 一是master重启后,master中空数据同步到slave,导致slave为空;
- 二master挂了,slave还没来得及切换为master,master就已经重启了,也会导致数据被同步而清空。
master本身持久化,还需要做多副本备份,完全确保master本身的数据是可靠存在的。
四 redis replication (主从)原理
- master和slave之间,当slave第一次连接master时,会触发全量备份。若是中途连接,就只会同步新增的命令数据;
2.全量备份的方式分为落磁盘和不落磁盘两种。默认是落磁盘,master会生成一个RDB文件到磁盘中,然后把这个RDB文件传送到各个slave,slave加载文件恢复数据;还有一种是不落磁盘,RDB文件在内存中,直接传送到各个slave上恢复数据;这两种方式是可配的。slave接收文件并加载时,如果文件太大,导致接收和加载超过设置的默认值(60秒),就会同步失败。可以修改这个值。
按照千兆带宽计算(100m/s),4-6G的文件传输就会超过一分钟。
在文件同步过程中,master还会继续缓存新的命令数据在内存中,最后再把这些新的数据同步到slave。 - 支持断点续传。由于是RDB文件传输,所以支持断点续传,不用担心网络连接会断掉;
- 过期key策略。slave不会主动执行过期key策略,而是master删除过期key的时候发送del到slave进行同步删除。
- rdb文件可以做冷备。master会生成rdb文件,可以把这些rdb文件按时间点进行多分冷备,在需要的时候可以恢复指定时间点的rdb文件。
- master每10秒发一次心跳,slave每1秒发1次心跳。
网友评论