四,快照部分
1:“save * *”:保存快照的频率,第一个*表示多长时间,单位是秒,第二个“*”表示至少执行写操作的次数;
在一定时间内至少执行一定数量的写操作时,就自动保存快照;可设置多个条件。
如果想禁用RDB持久化的策略,只要不设置任何save指令,或者给save传入一个空字符串参数也可以
如果用户开启了RDB快照功能,那么在Redis持久化数据到磁盘时如果出现失败,默认情况下,
Redis会停止接受所有的写请求。这样做的好处在于可以让用户很明确的知道内存中的数据和磁盘上的
数据已经存在不一致了。如果下一次RDB持久化成功,redis会自动恢复接受写请求。
2:stop-writes-on-bgsave-error:如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制
这种不一致,那么在快照写入失败时,也能确保redis继续接受新的写请求
3:rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用
LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能
4:rdbchecksum:在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约
10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
5:dbfilename:数据快照文件名(只是文件名,不包括目录),默认dump.rdb
6:dir:数据快照的保存目录(这个是目录),默认是当前路径
五,追加模式部分
1:appendonly:是否开启AOF
2:appendfilename:设置AOF的日志文件名
3:appendfsync:设置AOF日志如何同步到磁盘,fsync()调用,用来告诉操作系统立即将缓存的指令写入磁
盘,有三个选项:
(1)always:每次写都强制调用fsync,这种模式下,redis会相对较慢,但数据最安全
(2)everysec:每秒启用一次fsync
(3)no:不调用fsync()。而是让操作系统自行决定sync的时间。这种模式下,redis的性能会最快
4:no-appendfsync-on-rewrite:设置当redis在rewrite的时候,是否允许appendsync。因为redis进程在
进行AOF重写的时候,fsync()在主进程中的调用会被阻止,也就是redis的持久化功能暂时失效。默认
为no,这样能保证数据安全
5:auto-aof-rewrite-min-size:设置一个最小大小,是为了防止在aof很小时就触发重写
5:auto-aof-rewrite-percentage:设置自动进行AOF重写的基准值,也就是重写启动时的AOF文件大小,假
如redis自启动至今还没有进行过重写,那么启动时aof文件的大小会被作为基准值。这个基准值会和当
前的aof大小进行比较。如果当前aof大小超出所设置的增长比例,则会触发重写。如果设置auto-aofrewrite-
percentage为0,则会关闭此重写功能
六,复制部分
1:slaveof :指定某一个redis作为另一个redis的从服务器,通过指定IP和端口来设置主redis。建议为从
redis设置一个不同频率的快照持久化的周期,或者为从redis配置一个不同的服务端口
2:masterauth:如果主redis设置了验证密码的话(使用requirepass来设置),则在从redis的配置中要使
用masterauth来设置校验密码,否则的话,主redis会拒绝从redis的访问请求
3:slave-serve-stale-data:设置当从redis失去了与主redis的连接,或者主从同步正在进行中时,redis
该如何处理外部发来的访问请求。
如果设置为yes(默认),则从redis仍会继续响应客户端的读写请求。如果设置为no,则从
redis会对客户端的请求返回“SYNC with master in progress”,当然也有例外,当客户端发来INFO
请求和SLAVEOF请求,从redis还是会进行处理。从redis2.6版本之后,默认从redis为只读。
4:slave-read-only:设置从Redis为只读
5:repl-ping-slave-period:设置从redis会向主redis发出PING包的周期,默认是10秒
6:repl-timeout:设置主从同步的超时时间,要确保这个时限比repl-ping-slave-period的值要大,否则
每次主redis都会认为从redis超时。
7:repl-disable-tcp-nodelay:设置在主从同步时是否禁用TCP_NODELAY,如果开启,那么主redis
会使用更少的TCP包和更少的带宽来向从redis传输数据。但是这可能会增加一些同步的延迟,大
概会达到40毫秒左右。如果关闭,那么数据同步的延迟时间会降低,但是会消耗更多的带宽。
8:repl-backlog-size:设置同步队列长度。队列长度(backlog)是主redis中的一个缓冲区,在与
从redis断开连接期间,主redis会用这个缓冲区来缓存应该发给从redis的数据。这样的话,当
从redis重新连接上之后,就不必重新全量同步数据,只需要同步这部分增量数据即可
9:repl-backlog-ttl:设置主redis要等待的时间长度,如果主redis等了这么长时间之后,还是无
法连接到从redis,那么缓冲队列中的数据将被清理掉。设置为0,则表示永远不清理。默认是1
个小时。
10:slave-priority:设置从redis优先级,在主redis持续工作不正常的情况,优先级高的从redis
将会升级为主redis。而编号越小,优先级越高。当优先级被设置为0时,这个从redis将永远也
不会被选中。默认的优先级为100。
11:min-slaves-to-write:设置执行写操作所需的最少从服务器数量,如果至少有这么多个从服务
器, 并且这些服务器的延迟值都少于min-slaves-max-lag 秒, 那么主服务器就会执行客户端
请求的写操作
12:min-slaves-max-lag:设置最大连接延迟的时间, min-slaves-to-write和min-slaves-max-lag
中有一个被置为0,则这个特性将被关闭。默认情况下min-slaves-to-write为0,而min-slaves-max-lag为10