Redis3.0.5配置文件详解(5)

# 通常该情况会发生在运行Redis的操作系统crash,尤其是没有使用data=ordered选项的ext4文件系统中(注:不会在Redis crash或abort但操作系统正常工作的场景中发生)。

# 当出现这种情况时,Redis可能会报错退出,或尽可能多的载入数据(默认情况)。

# 同时,开始在aof文件上执行truncate操作。下面的参数将控制这种行为:

# 如该参数被设置为yes,那么该被truncate的AOF文件会继续被加载,且Redis会启动服务后将该事件以日志的形式告知用户。

# 否则,如果该选项被设置为no,那么Redis将报错中断并拒绝启动服务。该参数被设置为no时,需要用户在重启动Redis服务前,使用redis-check-aof工具修复AOF文件。

# 注:如果AOF前后完整但是中间被截断,那么Redis还是会报错并退出。该参数主要用# 于Redis尝试从AOF文件中读取更多数据,但没有更多数据存在的场景。

aof-load-truncated yes

################## LUA SCRIPTING #####################

# 以毫秒为单位限定lua脚本的最大执行时间.

#

# 当lua脚本在超出最大允许执行时间之后,redis会记录下这个脚本到日志中,

#并且会向这个请求返回error的错误。

# 仅当 SCRIPT KILL 和 SHUTDOWN NOSAVE 命令可用时,

# 一个运行时间超过最大限定时间的脚本才会继续执行。

# SCRIPT KILL用来停止一个没有调用写入命令的脚本,

# 当用户不想等待脚本的自然中止但脚本又在进行写操作时,

# 采用 SHUTDOWN NOSAVE 是解决这个问题的唯一办法,可以立即停掉整个脚本。

#

# 设置为0 或者一个负数来取消时间限定.

lua-time-limit 5000

################### SLOW LOG #######################

# slow log(慢日志)用来记录执行时间超过指定值的查询。

# 执行时间不包含 I/O操作,比如和客户端交互,发送应答等等,

# 仅是执行命令的真实时间(仅是线程因为执行这个命令而锁定且无法处理其他请求的阶段���。

# 你可以使用两个参数来配置 slow log,一个是以微秒为单位的命令执行时间值,

# 另一个是slow log 的长度(即记录的最大数量)。

# 当一个新的命令被记录到slow log的时候,最旧的一条记录将会被移除。

#

# 下面的值将会被解释为微秒为单位,所以 1,000,000 微秒为 1秒

# 将这个值设置为一个负数,将关闭掉slow log ,如果设置为0,则记录所有的命令

# (默认是10毫秒)。

slowlog-log-slower-than 10000

# 因为这会消耗内存,因此实际上并不是限制到这个长度.

# 可以使用 SLOWLOG RESET来回收占用的内存

slowlog-max-len 128

############### LATENCY MONITOR ####################

# redis延迟监控子系统的示例与操作系统收集的redis实例相关的数据不同

#

# 通过LATENCY命令,可以为用户打印出相关信息的图形和报告

#

# 这个系统只会记录运行时间超出指定时间值的命令,如果设置为0,这个监控将会被关闭

#

# 默认的情况下,延迟监控是关闭,因为如果你没有延迟的问题大部分情况下不需要,

# 并且收集数据的行为会对性能造成影响,虽然这个影响很小可以在大负荷下工作。

# 延迟监控可以使用如下命令来打开:

# "CONFIG SET latency-monitor-threshold <milliseconds>".

latency-monitor-threshold 0

################## EVENT NOTIFICATION ####################

# redis可以在key 空间中采用发布/订阅模式来通知事件的发生。

#

# 这个功能的文档可以查看

#

# 对于一个实例,如果键空间事件通知是启用状态,当一个客户端执行在一个

# 存储在Database 0名为"foo"的key的DEL(删除)操作时,

# 有如下两条信息将会通过发布订阅系统产生

#

# PUBLISH __keyspace@0__:foo del

# PUBLISH __keyevent@0__:del foo

#

# 以下是可选的redis事件通知,每个类别的事件可以由一个字符进行描述

#

# K   Keyspace events, published with __keyspace@<db>__ prefix.

# E   Keyevent events, published with __keyevent@<db>__ prefix.

# g   Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...

# $   String commands

# l   List commands

# s   Set commands

# h   Hash commands

# z   Sorted set commands

# x   Expired events (events generated every time a key expires)

# e   Evicted events (events generated when a key is evicted for maxmemory)

# A   Alias for g$lshzxe, so that the "AKE" string means all the events.

#

# The "notify-keyspace-events" takes as argument a string that is composed

# by zero or multiple characters. The empty string means that notifications

# are disabled at all.

# 例1: 启用 list 和 generic 事件, 

# notify-keyspace-events Elg

#

# 例子2 : 要想订阅通道名为__keyevent@0__:expired 上expired keys的事件:

# notify-keyspace-events Ex

#

# 默认不启用所有通知,因为大部分的用户无需这些功能,而且这些功能会带来一些开销

#

# 如果你没有指定K 或者E,没有事件会被传递。

notify-keyspace-events ""

################### ADVANCED CONFIG ###################

# 创建空白哈希表时,程序默认使用REDIS_ENCODING_ZIPLIST 编码,当以下任何一个条件被满足时,程序将编码从切换为REDIS_ENCODING_HT。

# 哈希表中某个键或某个值的长度大于 server.hash_max_ziplist_value (默认值为 64)。

# 压缩列表中的节点数量大于server.hash_max_ziplist_entries (默认值为 512 )。

#

# ziplist是一个解决空间的紧凑的数据存储结构,但是当数据超过阈值时,将采用原生的数据存储结构

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

# 与哈希表类似。

list-max-ziplist-entries 512

list-max-ziplist-value 64

# 设置特殊编码的唯一情况:

# 当一个set仅仅由一个基数为10最大位数为64位的有符号整形的字符串构成的时候。

#

# 以下配置设置了set的限制大小,当小于这个值时将会使用一个更紧凑的数据结构来

# 保存以期减少内存占用

set-max-intset-entries 512

# 与hash和list类似。zsort也采用如下的配置来选择是否进行特殊编码来节省空间。

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

# HyperLogLog 稀疏表示字节限制

# 这个限制包含了16个字节的头部,当一个HyperLogLog使用sparse representation

# 超过了这个显示,它就会转换到dense representation上。

hll-sparse-max-bytes 3000

# active rehashing使用CPU时间的每100毫秒中的1毫秒来进行rehashing工作

# 来rehash redis的主hash表(rehash的时候在代码种引入记时来保证)。

# lazy rehashing:逐步hash,每一次添加查找删除进行一次rehash的步骤,惰性hash

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6ceedf862002e657b95ae77e718266db.html