redis初学者你有福了—带你进入Redis不一样的世界( 八 )


syslog-ident redis
而且还支持指定syslog设备 , 值可以是USER或LOCAL0-LOCAL7 。具体可以参考syslog服务本身的用法 。
syslog-facility local0
对于redis来说 , 可以设置其数据库的总数量 , 假如你希望一个redis包含16个数据库 , 那么设置如下:
databases 16
这16个数据库的编号将是0到15 。默认的数据库是编号为0的数据库 。用户可以使用select <DBid>来选择相应的数据库 。
【教你看懂redis配置 – 快照】
快照 , 主要涉及的是redis的RDB持久化相关的配置 , 我们来一起看一看 。
我们可以用如下的指令来让数据保存到磁盘上 , 即控制RDB快照功能:
save <seconds> <changes>
举例来说:
save 900 1 //表示每15分钟且至少有1个key改变 , 就触发一次持久化
 
save 300 10 //表示每5分钟且至少有10个key改变 , 就触发一次持久化
 
save 60 10000 //表示每60秒至少有10000个key改变 , 就触发一次持久化
如果你想禁用RDB持久化的策略 , 只要不设置任何save指令就可以 , 或者给save传入一个空字符串参数也可以达到相同效果 , 就像这样:
save ""
如果用户开启了RDB快照功能 , 那么在redis持久化数据到磁盘时如果出现失败 , 默认情况下 , redis会停止接受所有的写请求 。这样做的好处在于可以让用户很明确的知道内存中的数据和磁盘上的数据已经存在不一致了 。如果redis不顾这种不一致 , 一意孤行的继续接收写请求 , 就可能会引起一些灾难性的后果 。
如果下一次RDB持久化成功 , redis会自动恢复接受写请求 。
当然 , 如果你不在乎这种数据不一致或者有其他的手段发现和控制这种不一致的话 , 你完全可以关闭这个功能 , 以便在快照写入失败时 , 也能确保redis继续接受新的写请求 。配置项如下:
stop-writes-on-bgsave-error yes
对于存储到磁盘中的快照 , 可以设置是否进行压缩存储 。如果是的话 , redis会采用LZF算法进行压缩 。如果你不想消耗CPU来进行压缩的话 , 可以设置为关闭此功能 , 但是存储在磁盘上的快照会比较大 。
rdbcompression yes
在存储快照后 , 我们还可以让redis使用CRC64算法来进行数据校验 , 但是这样做会增加大约10%的性能消耗 , 如果你希望获取到最大的性能提升 , 可以关闭此功能 。
rdbchecksum yes
1
我们还可以设置快照文件的名称 , 默认是这样配置的:
dbfilename dump.rdb
1
最后 , 你还可以设置这个快照文件存放的路径 。比如默认设置就是当前文件夹:
dir ./
【教你看懂redis配置 – 复制】
redis提供了主从同步功能 。
通过slaveof配置项可以控制某一个redis作为另一个redis的从服务器 , 通过指定IP和端口来定位到主redis的位置 。一般情况下 , 我们会建议用户为从redis设置一个不同频率的快照持久化的周期 , 或者为从redis配置一个不同的服务端口等等 。
slaveof <masterip> <masterport>
如果主redis设置了验证密码的话(使用requirepass来设置) , 则在从redis的配置中要使用masterauth来设置校验密码 , 否则的话 , 主redis会拒绝从redis的访问请求 。
masterauth <master-password>
当从redis失去了与主redis的连接 , 或者主从同步正在进行中时 , redis该如何处理外部发来的访问请求呢?这里 , 从redis可以有两种选择:
第一种选择:如果slave-serve-stale-data设置为yes(默认) , 则从redis仍会继续响应客户端的读写请求 。
第二种选择:如果slave-serve-stale-data设置为no , 则从redis会对客户端的请求返回“SYNC with master in progress” , 当然也有例外 , 当客户端发来INFO请求和SLAVEOF请求 , 从redis还是会进行处理 。
你可以控制一个从redis是否可以接受写请求 。将数据直接写入从redis , 一般只适用于那些生命周期非常短的数据 , 因为在主从同步时 , 这些临时数据就会被清理掉 。自从redis2.6版本之后 , 默认从redis为只读 。


推荐阅读