1. redis选用单线程防止线程资源竞赛上下文切换,io多路复用,根据内存操作,以支撑高并发操作 A8站源码交易平台
2.redis耐久化分为rdb和aof/
rdb触发可经过save指令和bgsave指令,将当时进程的数据生成一个快照,bgsave只会堵塞fork阶段,(fork指令运用的copy on write机制。在生成快照时,将当时进程整个仿制出来,fork出一个子进程,然后在子进程中循环一切的数据,将数据写成为RDB文件),rdb不适合做实时耐久化,fork进程是比较重的操作,并且体系需求有大于实例两倍的内存预留,否则会内存不足溃散。
aof,一切写入指令会写到aof_buf缓冲区,再将缓冲区的内容同步到硬盘,写入数据选用文本协议。因为aof文件会越来越大,因而能够经过手动触发或主动触发进行文件重写(现已超时的数据无需保存,调集多条写指令能够合并成一条,多条操作指令只需求保存最终一个有用指令,比方重复对同一个键设值),主动触发有两种装备 A8站源码交易平台
auto-aof-rewrite-min-size:表明运转AOF重写时文件最小体积,默以为64MB
auto-aof-rewrite-percentage:代表当时AOF文件空间(aof_current_size)和上一次重写后AOF文件空间(aof_base_size)的值
aof同步到硬盘有三种方式,
everysec 每秒刷一次,这种方式防止每次都直接往硬盘改写,进步功能,又能确保必定的安全性,服务挂了顶多丢掉1秒的数据。
no 随机时刻改写,改写机遇不可控,功能高,数据安全性低
always 每次都同步,安全性高,功能低,且受限机器硬盘负载
3. sentinel经过gossip协议进行毛病检测failover,sentinel以为一个master不可用分为两种,一种是sdown 片面不可用,一种是odown 客观不可用,当一个sentinel经过心跳检测(ping)发现一个master没有在装备的超时时刻内回复,或许回复内容不合法,该sentinel则片面以为master挂了,一起经过根据gossip协议将此信息广播到其他的sentinel,当一个sentinel接受到满足的sentinel的音讯(failover票数,可装备,装备两个则两个sentinel以为master挂了,就会发动毛病搬运)之后,状况变成odown,此时会触发failover,但是在履行failover之前,该sentinel要获取其他sentinel的授权,其他sentinel知道要进行failover就不会运用当时版本号对应的master装备,并且这样就不会呈现多个sentinel并发去对一个master进行failover。在failover完结后会更新一个装备版本号,广播到其他sentinel,其他sentinel发现版本号晋级则会去更新装备。A8站源码交易平台
4.sentinel不必装备某个master的一切slave的地址,sentinel会经过问询master来得到slave的地址,也不必装备其他sentinel节点信息,相同经过master去发现。