标签:重置 主服务器 主从 错误 备份 dir 专用 请求 模式
目录
Redis官方站点:https://redis.io/
配置文件位置:/etc/redis.conf
appendfsync always :每次收到写请求都会追加到文件中(io操作频繁)
appendfsync everysec:每秒钟往aof文件中写一次(推荐使用)
appendfsync no:不通知内核,内核决定什么时候持久化写入
no-appendfsync-on-rewrite no:重写的时候对新的写操作不做写入
auto-aof-rewrite-percentage 100:表示如果当前的aof文件大小已经是上一次重写时文件大小的2倍时触发一次重写过程
auto-aof-rewrite-min-size 64mb:重写时的最小大小,避免刚开始的频繁重写
slave-serve-stale-data yes:当主服务器连接不上时是否仍旧响应数据
slave-read-only yes:slave只读
slave-priority 100:slave的优先级,优先同步
WATCH:乐观锁,在EXEC执行之前可以用于监视指定数量的键,如果监视中的某个任意键数据被修改,则服务器拒绝执行事务,如果在exec之前watch中的键没有发生改变,则服务器执行操作
Redis不支持回滚操作
UNSUBSCRIBE + 频道名称:退订此前订阅的频道
PSUBSCRIBE:模式订阅
RDB模式:snapshot,二进制格式,默认模式,按照事先定制的策略,周期性的将数据保存至磁盘,数据文件默认为dump.rdb,启动一个新线程来保存数据;
客户端也可以显示使用SAVE和BGSAVE命令启动快照保存机制;SAVE:在主线程中保存快照,但是SAVE命令是在主线程中执行保存数据,会阻塞所有客户端请求;
BGSAVE:异步,不会阻塞客户端的请求
AOF模式:Append Only File,会将收到的每一次写操作记录到文件中类似于,MySQL的binlog,Redis能够合并AOF的文件,当redis重启时,可通过重新执行文件中的命令在内存中重建数据库
BGREWARITEAOF:不会读取正在使用AOF,而通过将内存中的数据以命令的方式保存到临时文件中,完成之后替换原来的AOF文件。
AOF文件重建过程:redis主进程调用fork生成子进程,子进程根据redis内存中数据现有状态往临时文件中生成重建数据库的命令,父进程将继续接受客户端请求,并且会把这些请求中的写操作继续追加至原来的AOF文件(防止重写失败),额外的,这些新的写请求还会被放置在一个缓冲队列中,子进程重写完成会通知父进程,父进程把缓冲中的命令写到临时文件中,父进程用临时文件替换原来的文件
注意:持久化本身不能取代备份,还应该指定备份策略,对redis数据库定期进行备份
sentinel用于管理多个redis服务器实现高可用
可以监控redis Master运行状况,当主服务器发生故障时,实现自动在从服务器中挑选出一个从服务器作为主服务器
使用流言协议,投票协议
主观下线:一个sentinel实例判断某节点下线
客观下线:多个sentinel实例协商后判断出某节点下线
每秒通过ping命令探测所有节点是否存活
运行sentinel
redis-sentinel /path/to/file.conf
redis-server --sentinel /path/to/file.conf
服务器自身初始化,运行redis-server中专用于sentinel功能的代码
初始化sentinel状态,根据指定的配置文件,初始化监控的Master服务器列表
创建连接master的连接
专用配置文件:/etc/redis-sentinel.conf
主要配置示例:
# sentinel monitor <master-name> <ip> <redis-port> <quorum> 配置监控的master,从节点通过主节点获取,该选项可以设置多次,可以指定多个集群,指定多个集群 的时候需要指定不同的master-name
sentinel monitor mymaster 127.0.0.1 6379 2
# sentinel down-after-milliseconds <master-name> <milliseconds> 判断主节点不在线需要的秒数,默认为30秒,可以根据网络状况适当调整
sentinel down-after-milliseconds mymaster 30000
# sentinel parallel-syncs <master-name> <numslaves> 指定主服务器宕机后,新主服务器允许多少个从服务器向新的嘱咐其发起同步请求,默认为1个
sentinel parallel-syncs mymaster 1
# sentinel failover-timeout <master-name> <milliseconds> 故障转移超时时间,当主服务器宕机以后,将从服务器设为主服务器的超时时间,如果设定时间内不能将从 服务器设置为主服务器则失败,默认为3分钟
sentinel failover-timeout mymaster 180000
标签:重置 主服务器 主从 错误 备份 dir 专用 请求 模式
原文地址:https://www.cnblogs.com/Template/p/9773629.html