reids配置参数说明

# ./redis-server /path/to/redis.conf

# Note on units: when memory size is needed, it is possible to specify
# it in the usual form of 1k 5GB 4M and so forth:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0
#参数说明:protected-mode  这个参数的值为  yes 的时候,要是没有指明redis的绑定地址(bind参数注释或者其他情况),那么虽然可以连接到redis但是所有的命令不可用
#要是这个值为  no   那么就不会出现命令不可用了,建议打开
protected-mode yes
port 6379
#tcp缓存队列长度,在高请求环境中这个的值应该往大设置避免客户端连接报错的问题
#这个值的设置依赖   /proc/sys/net/core/somaxconn(这个值定义了每一个端口最大的完成连接的队列长度)  和 net.ipv4.tcp_max_syn_backlog(所能接受SYN同步包的最大客户端数量,即半连接上限) 这俩内核参数的大小的限制
#设置   echo 8092 > /proc/sys/net/core/somaxconn  和 echo net.ipv4.tcp_max_syn_backlog = 8192 >>  /etc/sysctl.conf
#同时更改tcp-backlog 的值
tcp-backlog 511
# 指定一个Unix socket 监听的路径用于接受来自客户端的连接,默认是不开启的要是不指定路径的话
# redis-cli -s /tmp/redis.sock   socket连接方法
# unixsocket /tmp/redis.sock
# 指定socket的权限
# unixsocketperm 700

# Close the connection after a client is idle for N seconds (0 to disable)
# 当一个客户端闲置多长时间后关闭连接,如果为 0 表示不关闭连接
timeout 0

#长连接的设置,如果值非 0 ,单位是秒,表示周期性的使用so_keeplive检测客户端是否处于健康状态,周期是非 0 的其他值
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid

# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel notice
logfile /var/log/redis/redis.log

# 设置把日志输出到系统日志中,默认是不开启
# syslog-enabled no

# Specify the syslog identity.
# syslog-ident redis

# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0
databases 16

#设置保存数据到硬盘的策略
# save 900 1    过了900秒并且有1个key发生了改变那么就保存数据到硬盘上
# save 300 10   过了300秒并且有10个key发生了改变那么就保存数据库到硬盘上
# save 60  10000 过了60秒并且有10000个key发生了改变那么就保存数据到硬盘上
save 900 1
save 300 10
save 60 10000
#在默认情况下,如果RDB快照持久化(就是数据库保存到硬盘上)操作被激活(至少一个条件被激活)并且持久化操作失败,Redis则会停止接受更新操作。  
##这样会让用户了解到数据没有被正确的存储到磁盘上。否则没人会注意到这个问题,可能会造成灾难。  
##
##如果后台存储(持久化)操作进程再次工作,Redis会自动允许更新操作。  
##  
##然而,如果你已经恰当的配置了对Redis服务器的监视和备份,你也许想关掉这项功能。  
##如此一来即使后台保存操作出错,redis也仍然可以继续像平常一样工作
stop-writes-on-bgsave-error no
#是否在导出.rdb数据库文件的时候采用LZF压缩字符串和对象?  
##默认情况下总是设置成‘yes’, 他看起来是一把双刃剑。  
##如果你想在存储的子进程中节省一些CPU就设置成'no',  
##但是这样如果你的kye/value是可压缩的,你的到处数据接就会很大。  
rdbcompression no
#从版本RDB版本5开始,一个CRC64的校验就被放在了文件末尾。  
##这会让格式更加耐攻击,但是当存储或者加载rbd文件的时候会有一个10%左右的性能下降,  
##所以,为了达到性能的最大化,你可以关掉这个配置项。  
##  
##没有校验的RDB文件会有一个0校验位,来告诉加载代码跳过校验检查。  
rdbchecksum no

# 导出数据库的文件名称
dbfilename redis-dump.rdb
# 工作目录  
#   
# 导出的数据库会被写入这个目录,文件名就是上面'dbfilename'配置项指定的文件名。  
#   
# 只增的文件也会在这个目录创建(这句话没看明白)  
#
# 注意你一定要在这个配置一个工作目录,而不是文件名称。  
dir /var/lib/redis

################################# 主从复制 #################################

# 指定master的地址和端口
# slaveof <masterip> <masterport>
  slaveof 10.0.3.141 6379
# 如果master开启了密码登陆,这块需指定密码,否者master会决绝同步
# masterauth <master-password>
#
# 如果salve和master的之间由于各种原因连接断开,那么就会有俩种设置的方法来处理
# 第一种: 这个值为  yes :那么slave仍然可以回复数据,但是数据是可能旧的或者是返回的是空
# 第二种: 这个值为  no  :那么在slave上执行所有的命令都客户端会反馈一个error "SYNC with master in progress" ,如果master 无法连接上,则会报"MASTERDOWN Link with MASTER is down and slave-serve-stale-data is set to 'no'."但是info命令可以正常执行
slave-serve-stale-data yes
#但是要注意的是,当对外提供服务的时候,请使用“rename-command”参数来禁用的一些管理以及一些比较危险的命令,如:info\config\debug\flushall\flushdb
slave-read-only no

#是否使用socket方式复制数据
#主从同步支持两种策略,即disk和socket(diskless)方式(socket方式尚不完善,还处于实验阶段)。
#如果新的slave连上来或者重连的slave无法部分同步,就会执行全量同步
#一个RDB文件从master端传到slave端,分为两种情况:
#1、支持disk:master端将RDB file写到disk,稍后再传送到slave端;
#2、无磁盘diskless:master端直接将RDB file传到slave socket,不需要与disk进行交互。
#disk方式的时候,当一个rdb保存的过程中,多个slave都能共享这个rdb文件。socket的方式就的一个个slave顺序复制。在磁盘速度缓慢,网速快的情况下推荐用socket方式
repl-diskless-sync no

#启用socket(diskless)复制的延迟时间,防止设置为0。一旦复制开始,节点不会再接收新slave的复制请求直到下一个rdb传输。所以最好等待一段时间,等更多的slave连上来。
repl-diskless-sync-delay 5

#slave根据指定的时间间隔向服务器发送ping请求,保证主从互相确认正常。时间间隔可以通过 repl_ping_slave_period 来设置,默认10秒
repl-ping-slave-period 10

#复制连接超时时间。master和slave都有超时时间的设置。master检测到slave上次发送的时间超过repl-timeout,即认为slave离线,清除该slave信息。slave检测到上次和master交互的时间超过repl-timeout,则认为master离线。需要注意的是repl-timeout需要设置一个比repl-ping-slave-period更大的值,不然会经常检测到超时
repl-timeout 60

# 这个选项的默认值为no,它对优化主从复制时使用的网络资源非常有用。
# 要明白这个参数的含义,就首先要解释一下tcp-nodelay是个什么玩意儿?
# JohnNagle在1984年发明了一种减轻网络传输压力的算法,就是为了解决这个问题(算法的名字就叫做“Nagle”,后续的技术人员又做了很多改进和升级)。
# 其基本思路就是将要发送的内容凑够一定的数量后,再用一个数据报发送出去。如果该属性设置为yes,Redis将使用“Nagle”算法(或类似算法),
# 让数据报中的有效载荷凑够一定数量后,在发送出去;设置成no,Redis直接同步,在内网的时候用no 若果有外网同步的话设置为  yes
# 感觉还是 设置为 no   比较好,默认就好
#
repl-disable-tcp-nodelay no

#复制缓冲区大小,这是一个环形复制缓冲区,用来保存最新复制的命令。
#这样在slave离线的时候,不需要完全复制master的数据,如果可以执行部分同步,只需要把缓冲区的部分数据复制给slave,就能恢复正常复制状态。
#缓冲区的大小越大,slave离线的时间可以更长,复制缓冲区只有在有slave连接的时候才分配内存。没有slave的一段时间,内存会被释放出来,默认1m,这个参数可以往大设置。
#这个参数是 master上设置的
# repl-backlog-size 1mb

#复制缓存区的有效时间,当过了这个时间之后,缓存区中的数据全部清空并释放掉
# repl-backlog-ttl 3600

#从属优先级是由Redis在INFO输出中发布的整数。
#它被Redis Sentinel用来选择一个slave来提升为master
#这个的值越小优先级越高,但是这个值为 0 的时候,代表这个slave永远不能作为master
slave-priority 100

#如果在 M 秒内slave的连接数少于N个,那么master就停止接受写
#并报错   (error) NOREPLICAS Not enough good slaves to write.
#下面的这个参数的设置含义:在 10秒内要是slave的连接数少于3个的话,那么master不接受写操作
#这个也是在master上设置的
#min-slaves-to-write 默认是 0 不生效
# min-slaves-max-lag 默认是 10 秒

# min-slaves-to-write 3
# min-slaves-max-lag 10

# 在主从环境中,在master上可以使用 命令 info replication 查看slave的信息,其中IP和port字段可以使用
# 下面的俩个参数来指定任意的内容,这个内容会在master中显示出来.不设置的话会显示本机的IP和端口,但是在net网络中
# 这个默认就会出问题,所以就得需要设置这个参数的值来显示master信息中,作为slave的标识
#  
# slave-announce-ip 我是一个兵
# slave-announce-port 123

################################## 安全 ###################################
# 设置redis的访问密码
# requirepass foobared

#更改一些威胁命令的的环境变量,也就是禁用一些危险的命令,如 :info\config\debug\flushall\flushdb
 rename-command flushall ""

################################### LIMITS ####################################

# 设置最大的客户端连接数,默认是10000,但是实际的最大客户端连接数只有10000-32个,这是因为
# redis内部bao'liubao'liu
# maxclients 10000

# 设置使用的最大内存
# maxmemory <bytes>

#  当达到最大内存使用量的时候删除策略
#  volatile-lru -> remove the key with an expire set using an LRU algorithm
#    按照LRU算法(最少最近没使用)来选取,并删除已经设置了expire时间的key。
#  allkeys-lru -> remove any key accordingly to the LRU algorithm
#    根据LRU算法,删除任意的key。不论这个key是否设置了expire时间。\
#  volatile-random -> remove a random key with an expire set
#    随机删除一个设置了expire时间的key。
#  allkeys-random -> remove a random key, any key
#   随机删除任意一个key,不论这个key是否设置了expire时间。
#  volatile-ttl -> remove the key with the nearest expire time (minor TTL)
#   删除具有最近终止时间值(TTL)的key。
#  noeviction -> don't expire at all, just return an error on write operations
#   若没有设置终止时间,返回一个错误。
  maxmemory-policy volatile-lru


# LRU和最小TTL算法不是精确的算法,而是近似的。
# 算法(为了节省内存),所以你可以调整它的速度或者。准确性。默认的Redis将检查5个键并选择一个。
# 最近使用较少,您可以使用以下方法更改示例大小。
# 默认的5可以产生足够好的结果。10密切接近
# 真正的LRU但是要花费更多的CPU。3非常快,但不太准确
 maxmemory-samples 5

############################## APPEND ONLY MODE ###############################

#数据持久化的方式:
#默认使用的是RDB,下面的参数设置为yes的时候,会使用AOF的模式,但是这俩种模式可以同事开启
#具体信息:http://www.redis.cn/topics/persistence.html

appendonly no

# 启用AOF模式时。指定启用AOF文件名

appendfilename "appendonly.aof"

#启用AOF持久化模式的时候,将数据fsync到数据盘的方法:
#每次有新命令追加到 AOF 文件时就执行一次 fsync :非常慢,也非常安全
#每秒 fsync 一次:足够快(和使用 RDB 持久化差不多),并且在故障时只会丢失 1 秒钟的数据。
#从不 fsync :将数据交给操作系统来处理。更快,也更不安全的选择。
#推荐(并且也是默认)的措施为每秒 fsync 一次, 这种 fsync 策略可以兼顾速度和安全性。
appendfsync everysec

#同时在执行bgrewriteaof操作和主进程写aof文件的操作,两者都会操作磁盘,而bgrewriteaof往往会涉及大量磁盘操作,这样就会造成主进程在写aof文件的时候出现阻塞的情形
#如果该参数设置为no,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题
#如果设置为 yes 这就相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,因此这样并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,丢失数据,在linux的操作系统的默认设置下,最多会丢失30s的数据。
#因此,如果应用系统无法忍受延迟,而可以容忍少量的数据丢失,则设置为yes。如果应用系统无法忍受数据丢失但是可以忍受延迟,则设置为no。
no-appendfsync-on-rewrite no

#aof文件重写最小的文件大小,即最开始aof文件必须要达到这个文件时才触发,
#后面的每次重写就不会根据这个变量了(根据上一次重写完成之后的大小).此变量仅初始化启动redis有效.如果是redis恢复时,则lastSize等于初始aof文件大小.
auto-aof-rewrite-min-size 64mb
#aof文件增长比例,aof重写即在aof文件在一定大小比列之后,重新将整个内存写到aof文件当中,以反映最新的状态(相当于bgsave)。这样就避免了,aof文件过大而实际内存数据小的问题(频繁修改数据问题).
# 值为 100 表示百分之百 也就是和上面参数指定的大小一致
auto-aof-rewrite-percentage 100

# 如果将aof-load-truncated设置为yes,则加载截断的AOF文件
# Redis服务器开始发送日志以通知用户该事件。
# 否则,如果该选项设置为no,则服务器将中止并出现错误
# 并拒绝启动。当选项设置为no时,用户需要
# 在重新启动服务之前使用“redis-check-aof”实用程序修复AOF文件
aof-load-truncated yes

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


# lua脚本的最大执行时间,在脚本执行期间不会接受其他的命令,当达到最大执行时间
# 后redis开始接受其他的命令但是不会执行而是返回一个 BUSY 的错误
# 当lua脚本超过执行的最大时间后,只会执行 SCRIPT KILL 和 SHUTDOWN NOSAVE 命令
# SCRIPT KILL 强制终止当前脚本的执行。 但是,如果当前执行的脚步对redis的数据进行了写操作,则SCRIPT KILL命令不会终止脚本的运行
# SHUTDOWN NOSAVE 这个实在脚本执行写操作的时候也可以强制关掉的脚本的唯一命令
# 将其设置为0或负值,以便无限制地执行而不发出警告。
lua-time-limit 5000

################################ redis  集群     ###############################
# 如果配置yes则开启集群功能,此redis实例作为集群的一个节点,否则,它是一个普通的单一的redis实例
# cluster-enabled yes

# Every cluster node has a cluster configuration file. This file is not
# intended to be edited by hand. It is created and updated by Redis nodes.
# Every Redis Cluster node requires a different cluster configuration file.
# Make sure that instances running in the same system do not have
# overlapping cluster configuration file names.
# 每一个集群的节点都有有ige集群的配置文件,但是这个文件不可以人为的修改,
# 这个文件是被redis 节点自动创建和更新的。每一个redis集群节点都会有一个不同的集群文件
# 所以请确保在同一个系统中运行的节点有不同的文件名
# cluster-config-file nodes-6379.conf

# 集群中节点的超时时间,过了这个时间要是不可联系的话,那么这个节点就被认为状态是失败的不可用的
# cluster-node-timeout 15000
#
#
# 这个值如果设置为0,那么在集群中mster出现故障后,这个值为0的slave可以通过选举成为master。
# 这个值如果不为0,那么这在集群中当master出现故障后,这个slave中的数据有效时间为 cluster-node-timeout * cluster-slave-validity-factor+ repl-ping-slave-period,但是这个slave不会参与选举并成为master
# 直到新的master产生
# cluster-slave-validity-factor 10

#master的slave数量大于该值,slave才能迁移到其他孤立master上, 如这个参数若被设为2,那么只有当一个主节点拥有2 个可工作的从节点时,它的一个从节点会尝试迁移。
# cluster-migration-barrier 1

# 该参数是redis配置文件中cluster模式的一个参数,具体点是redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。
# 默认是 yes ,当一个
# cluster-require-full-coverage yes

# In order to setup your cluster make sure to read the documentation
# available at http://redis.io web site.

################################## 慢日志 ###################################

# redis慢日志是系统记录一个问题,这个问题超过指定的命令执行时间。命令的执行时间不包括I/O的操作和与客户端的连接沟通
# 这个时间仅是命令的实际执行时间(唯一的执行命令,但是这个线程是被锁定的同时不能响应其他的请求)

# 你可以给慢日志配置俩个参数,一个参数是告诉redis超过指定的时间就可以认为是慢查询,这个时间是微妙,超过这个时间就进行命令的记录。
# 另一个参数是一个满日志的长度(队列),当日志记录的条数大于指定的数,那么新产生的慢日志记录就会覆盖旧的日志记录

# 这个参数的单位微妙 1000000微妙==1秒。这个参数是负数的时候就是禁用满日志记录。
# 如果这个参数为 0 的话,就强制记录所有的命令日志不管是否是慢日志
slowlog-log-slower-than 1000

# 记录满日志的队列是没有长度的,可以是任意的正整数,但是这个是慢日志的队列是放在内存中的,
# 所有这个值设定一个特定的值,不然会消耗内存。
slowlog-max-len 128

################################ 延迟监控 ##############################
## redis延时监控系统在运行时会采样一些操作,以便收集可能导致延时的数据根源。
## 通过 LATENCY命令 可以打印一些图样和获取一些报告,方便监控
## 这个系统仅仅记录那个执行时间大于或等于预定时间(毫秒)的操作,
## 这个预定时间是通过latency-monitor-threshold配置来指定的,
## 当设置为0时,这个监控系统处于停止状态
latency-monitor-threshold 100

############################# 事件通知 ##############################
#键空间通知使得客户端能够订阅Pub/Sub(发布/订阅)频道,这样客户端便能接收到以某种方式影响Redis数据集的事件。
#也就是说,当开启这个功能的时候,可以在终端中记录显示正在更改数据的操作(开启俩个终端一个记录一个写,进行测试)
#默认参数为空的时候该功能是关闭的,可以指定记录的类型使用:psubscribe __key*__:*   命令来查看(也有其他的命令)
#具体的参数如下:
#        K Keyspace events, published with __keyspace@<db>__ prefix. 表示启用key-space事件
#
#    E  Keyevent events, published with __keyevent@<db>__ prefix. 表示启用key-event事件
#
#    g  一般性的指令,比如del(删除),expire(过期),rename(重命名)
#    $  字符特定串命令
#
#    l  列表特定命令
#
#    s  集合特定命令
#
#    h  hash特定命令
#
#    z  有序集合特定命令
#
#    x  过期事件
#
#    e  驱逐事件
#
#    A  g$lshzxe的别名
# 要是开启这个功能的时候必须指定一个K或者E参数,否者不会输出任何东西
notify-keyspace-events ""

############################### ADVANCED CONFIG 高级配置 ###############################
# 如果Hash中字段的数量小于参数值,Redis将对该Key的Hash Value采用zipmap特殊编码,这样会节省内存的使用
hash-max-ziplist-entries 512
# 如果Hash中各个字段的最大长度不超过512字节,Redis也将对该Key的Hash Value采用特殊zipmap编码方式
hash-max-ziplist-value 64
# 列表也以一种特殊的方式进行编码,以节省大量的空间。
# 可以指定每个内部列表节点的条目数
# 作为一个固定的最大尺寸或最大数量的元素。
# 对于一个固定的最大尺寸,使用-5到-1,意思是:
# 5:最大尺寸:64 Kb<——不推荐正常工作负载
# -4:最大尺寸:32 Kb<——不推荐
# 3:最大尺寸:16 Kb<——可能不推荐
# 2:最大尺寸:8 Kb<——很好
# 1:最大尺寸:4 Kb<——很好
# 正数意味着存储的元素数量正好是这些元素的数量
# #每节点列表。
# 性能最高的选项通常是-2(8 Kb大小)或-1(4 Kb大小),
# 但是如果您的用例是惟一的,那么根据需要调整设置。
list-max-ziplist-size -2

# 为了节省内存,列表也是可以被压缩的,这个压缩的算法是LZF无损压缩
# 这个参数表示一个quicklist两端不被压缩的节点个数。也就是一个列表的头和维是否压缩
# 默认是 0 不压缩,
# 1        表示quicklist两端各有1个节点不压缩,中间的节点压缩。
# 2        表示quicklist两端各有2个节点不压缩,中间的节点压缩。
# 3        表示quicklist两端各有3个节点不压缩,中间的节点压缩。
# n        表示quicklist两端各有n个节点不压缩,中间的节点压缩。
list-compress-depth 0
# 当一个集合数据结构中的元素个数超过下面参数指定数的时候,就把数据存储格式由整型(intset)改为为hashtable,为了节省内存
set-max-intset-entries 512

# 根hash和list一样sorted set也有节约内存的方式,当sorted set的元素个数及元素大小小于一定限制时,采用ziplist来存储,节省内存
# ziplist在小的list上的压缩效率是非常高的
zset-max-ziplist-entries 128    
zset-max-ziplist-value 64

# HyperLogLog sparse representation bytes limit. The limit includes the
# 16 bytes header. When an HyperLogLog using the sparse representation crosses
# this limit, it is converted into the dense representation.
#
# A value greater than 16000 is totally useless, since at that point the
# dense representation is more memory efficient.
#
# The suggested value is ~ 3000 in order to have the benefits of
# the space efficient encoding without slowing down too much PFADD,
# which is O(N) with the sparse encoding. The value can be raised to
# ~ 10000 when CPU is not a concern, but space is, and the data set is
# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
hll-sparse-max-bytes 3000


#是否重置Hash表
##设置成yes后redis将每100毫秒使用1毫秒CPU时间来对redis的hash表重新hash,可降低内存的使用
##当使用场景有较为严格的实时性需求,不能接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。
##如果没有这么严格的实时性要求,可以设置为 yes,以便能够尽可能快的释放内存
activerehashing no

# 客户端缓冲区组成了服务客户请求所需的内存空间,Redis的每个连接都配有自己的缓冲区空间。
# 处理请求后,Redis把响应数据复制到客户端缓冲区,然后继续处理下一个请求,与此同时,请求客户端通过网络连接读取数据
# 缓存存在的原因是因为,客户端请求返回客户端的时间将显著长于Redis CPU从RAM读取数据的时间
# normal -> normal clients including MONITOR clients 普通客户端和monitor端
# slave  -> slave clients
# pubsub -> clients subscribed to at least one pubsub channel or pattern  订阅端
#
# The syntax of every client-output-buffer-limit directive is the following:
# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
# 当硬限制(hard limit)缓存到达指定值时立即断开客户端的连接。当如软限制(soft limit)缓存到达指定的值且一直持续了指定的时间(soft second),那么也
# 立即断开客户端的连接
#
# 对于普通客户端来说,限制为0,也就是不限制。因为普通客户端通常采用阻塞式的消息应答模式,何谓阻塞式呢?
# 如:发送请求,等待返回,再发送请求,再等待返回。这种模式下,通常不会导致Redis服务器输出缓冲区的堆积膨胀;
#
# 对于Pub/Sub客户端(也就是发布/订阅模式),大小限制是8M,当输出缓冲区超过8M时,会关闭连接。持续性限制是,当客户端缓冲区大小持续60秒超过2M,则关闭客户端连接;
#
# 对于slave客户端来说,大小限制是256M,持续性限制是当客户端缓冲区大小持续60秒超过64M,则关闭客户端连接。
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 8mb 2mb 60

# redis使用一个内部程序来处理后台任务,例如关闭超时的client连接,清除过期的key等等。它并不会同时处理所有的任务,redis通过指定的hz参数频率去检查和执行任务。
#
# hz默认设为10,提高它的值将会占用更多的cpu,当然相应的redis将会更快的处理同时到期的许多key,以及更精确的去处理超时。
# hz的取值范围是1~500,通常不建议超过100,只有在请求延时非常低的情况下可以将值提升到100。
hz 100

#
# aof rewrite过程中,是否采取增量文件同步策略,默认为“yes”。 rewrite过程中,每32M数据进行一次文件同步,这样可以减少aof大文件写入对磁盘的操作次数
aof-rewrite-incremental-fsync yes

猜你喜欢

转载自www.cnblogs.com/tugeboke/p/9143802.html