4. 安全(security)
1
2
3
4
5
|
############################# SECURITY #################################
##设置redis客户端在向redis-server发送请求之前,先进行密码验证。
# requirepass foobared ##设置密码为"foobared"
# rename-command CONFIG b840fc02d524045429941...... ##对redis指令进行更名
# rename-command CONFIG "" ##禁用CONFIG命令
|
5. 限制(limits)
1
2
3
|
############################### LIMITS ################################
# maxclients 10000 ##设置redis可以同时与多少个客户端进行连接(默认为10000个客户端)
# maxmemory <bytes>
|
设置redis可使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。如redis无法根据移除规则来移除内存中的数据,或者我们设置了“不允许移除”,那么redis则会针对那些需要申请内存的指令返回错误信息
如果你的redis是主redis,那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在设置的是“不移除”的情况下,才不用考虑这个因素。
对于内存移除规则来说,redis提供了多达6种的移除规则。他们是:
1. volatile-lru:使用LRU算法移除过期集合中的key
2. allkeys-lru:使用LRU算法移除key
3. volatile-random:在过期集合中移除随机的key
4. allkeys-random:移除随机的key
5. volatile-ttl:移除那些TTL值最小的key,即那些最近才过期的key。
6. noeviction:不进行移除。针对写操作,只是返回错误信息。(默认规则)
无论使用上述哪一种移除规则,如果没有合适的key可以移除的话,redis都会针对写请求返回错误信息。
1
2
|
# maxmemory-policy noeviction ##不进行移除
# maxmemory-samples 5 ##设置LRU算法的样本数
|
6. 追加模式(append only mode)
1
2
3
|
########################## APPEND ONLY MODE ###########################
appendonly on
##打开AOF功能
appendfilename
"appendonly.aof"
##设置AOF文件的名称
|
AOF持久化策略,fsync()调用,用来告诉操作系统立即将缓存的指令写入磁盘,redis支持三种不同的模式:
1. always:每次写请求都强制调用fsync,该模式下,redis会相对较慢,但数据最安全
2. everysec:每秒调用一次fsync
3. on:不调用fsync等待系统自己同步[fsync是指把缓存中的写指令记录到磁盘中]
1
|
appendfsync everysec
##每秒调用一次fsync
|
当BGSAVE或BGWRITEAOF运行时,fsync()在主进程中的调用会被阻止。这意味着当另一路进程正在对AOF文件进行重构时,redis的持久化功能就失效了,就像设置了“appendsync none”一样。 如果redis有时延问题, 那么将选项设置为yes。 否则请保持no,因为这是保证数据完整性的最安全的选择。
1
|
no-appendfsync-on-rewrite no
|
允许redis自动重写aof。当aof增长到一定规模时,redis会隐式调用BGREWRITEAOF来重写log文件,以缩减文件体积。redis是这样工作的:redis会记录上次重写时的aof大小。如redis自启动至今还没有进行过重写,那么启动时aof文件的大小会被作为基准值。该基准值会和当前的aof大小进行比较。如当前aof大小超出所设置的增长比例,则会触发重写。另外还需要设置一个最小大小,是为了防止在aof很小时就触发重写。如设置auto-aof-rewrite-percentage为0,则会关闭此重写功能。
1
2
3
|
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated
yes
##当aof文件被损坏时,redis将返回错误并退出
|
7. LUA脚本(lua scripting)
1
2
|
############################ LUA SCRIPTING #########################
lua-
time
-limit 5000
##设置lua脚本最大运行时间(默认毫秒,设置为0或负数,既不会报错也无时间限制)
|