标签:ip地址 配置文件 example listen 后台运行
redis.conf配置文件参数详解
# Redis configuration file example. ########################################## GENERAL ######################################## daemonize yes #是否开启在后台运行redis,默认为no,不开启 pidfile /var/run/redis/redis.pid #redis在后台运行时,默认pid文件的存放路径和文件名 port 6379 #redis运行监听端口号,默认6379 tcp-backlog 511 #listen队列的长度,这个跟系统本身的 bind 127.0.0.1 #绑定IP地址 unixsocket /tmp/redis.sock #unix指定监听socket unixsocketperm 755 #当指定监听为socket时,可以指定其权限为755 timeout 0 #设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接,0是关闭此设置 tcp-keepalive 0 #TCP keepalive.如果是非零值,当失去链接时,会使用SO_KEEPALIVE发送TCP ACKs到客户端。这个参数有两个作用:1.检测断点;2.从网络中间设备来看,就是保持链接。在Linux上,设定的时间就是发送ACKs的周期。注意:达到双倍的设定时间才会关闭链接。在其他内核上,周期依赖于内核设置。一个比较合理的值为60s loglevel notice #指定日志级别,debug用于开发/测试;verbose没debug那么详细;notice适用于生产线上,warning只记录非常重要的信息 logfile /var/log/redis/redis.log #日志文件名,以及路径 database 16 #默认值为16,默认数据库为0,数据库范围在0-(database-1)之间 ###################################### SNAPSHOTTING######################################## #save 900 1 #15分钟内有至少1个键被更改则进行快照 #save 300 10 #5分钟内有至少10个键被更改则进行快照 #save 60 10000 #一分钟内有至少10000个键被更改则进行快照 save "" #表示禁用RDB持久化 stop-writes-on-bgsave-error yes #表示写入磁盘时出现错误时,是否停止写入,yes,表示停止,no表示继续。 rdbcompression yes #表示是否要压缩RDB rdbchecksum yes #表示是否进行数据校验 dbfilename dump.rdb #默认RDB持久化备份文件名 dir /var/lib/redis/ #定义RDB存放路径 slaveof <masterip> <masterport> #主从复制,当本机是slave时配置 masterauth <master-password> #当主机需要密码验证的时候配置 slave-serve-stale-data yes #当slave和master丢失链接,或正处于同步过程中,是否响应客户端请求,设置为yes表示响应,设置为no,直接返回"SYNC with master in progress"(正在和主服务器同步中) slave-read-only yes #设置slave是否为只读 repl-diskless-sync no #disk较慢,并且网络较快的时候,可以用diskless repl-diskless-sync-delay 5 #设置成0的话,传输开始asap repl-disable-tcp-nodelay no #SYNC完毕后,在slave的socket里关闭TCP_NODELAY;如果是yes, reids发送少量的TCP包给slave,但可能导致最高40ms的数据延迟;如果是no,那可能在复制的时候,会消耗少量带宽;默认我们是为了低延迟优化而设置成no,如果主从之间有很多网络跳跃,那设置成yes吧 repl-backlog-size 100mb #值越大,salve可以丢失的时间就越长。 repl-backlog-ttl 3600 #多久释放backlog,当确认master不再需要slave的时候,多久释放。0是永远不释放。 slave-priority 100 #当master不可用,Sentinel会根据slave的优先级选举一个master。最低的优先级的slave,当选master.而配置成0,永远不会被选举。(必须≥0)。默认是100 requirepass foobared #设置客户端连接密码,因为Redis响应速度可以达到每秒100w次,所以密码要特别复杂 rename-command CONFIG "" #命令重新命名,或者禁用;重命名命令为空字符串可以禁用一些危险命 令比如:FLUSHALL删除所有数据,需要注意的是,写入AOF文件或传送给slave的命令别名也许会引起一些问题 maxclients 10000 #设置最多链接客户端数量,默认为10000;实际可以接受的请求数目为设置值减去32,这32是Redis为内部文件描述符保留的 maxmemory <bytes> #设置最大使用内存数量,在把Redis当作LRU缓存时特别有用。设置的值要比系统能使用的值要小,因为当启用删除算法时,slave输出缓存也要占用内存 达到最大内存限制时,使用何种删除算法 #volatile-lru -> 使用LRU算法移除带有过期标致的key #allkeys-lru -> 使用LRU算法移除任何key #volatile-random -> 随机移除一个带有过期标致的key #allkeys-random -> 随机移除一个key #volatile-ttl -> 移除最近要过期的key #noeviction -> 不删除key,当有写请求时,返回错误 maxmemory-policy volatile-lru #默认设置为volatile-lru maxmemory-samples 3 #LRU和minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存),随意你可以选择样本大小进行检测。Redis默认的会选择3个样本进行检测 appendonly no #默认情况下,redis没有开启AOF方式的持久化,开启AOF持久化需要把no变为yes appendfilename "appendonly.aof" AOF的保存名称,默认为appendonly.aof # Redis supports three different modes: redis支持三种AOF文件持久化策略: # no: don‘t fsync, just let the OS flush the data when it wants. Faster. #表示由操作系统决定何时写入。性能最好,但可靠性最低 # always: fsync after every write to the append only log. Slow, Safest. 表示每次都写入磁盘。性能最差,比上面的安全一些 # everysec: fsync only one time every second. Compromise. 表示每秒执行一次写入。折中方案,推荐 appendfsync everysec #AOF持久化方案,选择everysec,每秒执行一次写入 no-appendfsync-on-rewrite no #设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入。 auto-aof-rewrite-percentage 100 #指定Redis重写aof文件的条件,默认为100,表示与上次rewrite的aof文件大小相比,当前aof文件增长量超过上次aof文件大小的100%时,就会触发background rewrite。若配置为0,则会禁用自动rewrite。 auto-aof-rewrite-min-size 64mb 指定触发rewrite的aof文件大小。若aof文件小于该值,即使当前文件的增量比例达到auto-aof-rewrite-percentage的配置值,也不会触发自动rewrite。即这两个配置项同时满足时,才会触发rewrite。 # AOF自动重写(合并命令,减少日志大小) # 当AOF日志大小增加到一个特定比率,Redis调用BGREWRITEAOF自动重写日志文件 # 原理:Redis会记录上次重写后AOF文件的文件大小。 # 如果刚启动,则记录启动时AOF大小 # 这个基本大小会用来和当前大小比较。如果当前大小比特定比率大,就会触发重写。 # 你也需要指定一个AOF需要被重写的最小值,这样会避免达到了比率。 # 但是AOF文件还很小的情况下重写AOF文件,设置为0禁用自动重写 aof-load-truncated yes #AOF文件可能在尾部是不完整的(上次系统关闭有问题,尤其是mount、ext4文件系统时没有加上data=ordered选项,只会发生在os崩溃时,redis自己死不会不完整。)那redis重启时load进内存的时候就有问题了。发生的时候,可以选择reids启动报错,或者load尽量多正常的数据。如果aof-load-truncated是yes,会自动发布一个log给客户端然后load(默认)。如果是no,用户必须手动reids-check-aof修复AOF文件才可以。 lua-time-limit 5000 #Lua脚本的最大执行时间,单位毫秒,超时后会报错,并且计入日志;当一个脚本运行时间超过了最大执行时间,只有SCRIPT KILL和 SHUTDOWN NOSAVE两个命令可以使用;SCRIPT KILL用于停止没有调用写命令的脚本。SHUTDOWN NOSAVE是唯一的一个,在脚本的写命令正在执行用户又不想等待脚本正常结束的情况下,关闭服务器的方法。以下选项设置为0或负数就会取消脚本执行时间限制 slowlog-log-slower-than 10000 #Redis慢查询日志记录超过设定时间的查询,且只记录执行命令的时间,不记录I/O操作,比如:和客户端交互,发送回复等;时间单位为微妙,1000000微妙 = 1 秒;设置为负数会禁用慢查询日志,设置为0会记录所有查询命令 slowlog-max-len 128 #日志长度没有限制,但是会消耗内存。超过日志长度后,最旧的记录会被移除,使用SLOWLOG RESET命令可以回收内存 latency-monitor-threshold 0 #用LATENCY打印redis实例在跑命令时的耗时图表,只记录大于等于下边设置的值的操作。0的话,就是关闭监视。可以动态开启,直接运行CONFIG SET latency-monitor-threshold notify-keyspace-events "" #可以通知pub/sub客户端关于key空间的变化。 # 比如如果开着开关。一个client进行了DEL操作在“foo”key上在database0上。两个消息将会发布通过 pub/sub # PUBLISH __keyspace@0__:foo del # PUBLISH __keyevent@0__:del foo # 大部分人不需要这个功能,并且还需要一定开销,所以默认关闭。 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 # 当有少量条目的时候,哈希使用高效内存数据结构。最大的条目也不能超过设定的阈值。 #和哈希编码一样,少量列表也以特殊方式编码节省内存。“少量”设定如下: list-max-ziplist-entries 512 list-max-ziplist-value 64 # 集合只在以下情况下使用特殊编码来节省内存 # -->集合全部由64位带符号10进制整数构成的字符串组成 # 下面的选项设置这个特殊集合的大小。 set-max-intset-entries 512 # 当有序集合的长度和元素设定为以下数字时,又特殊编码节省内存 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 HyperLogLog不懂。大于16000完全不可接受!当CPU很顶得住的话,给10000可以。默认给3000. activerehashing yes #哈希刷新使用每100个CPU毫秒中的1毫秒来帮助刷新主哈希表(顶级键值映射表);Redis哈希表使用延迟刷新机制,越多操作,越多刷新.如果服务器空闲,刷新操作就不会进行,更多内存会被哈希表占用默认每秒进行10次主字典刷新,释放内存。如果你有硬性延迟需求,偶尔2毫秒的延迟无法忍受的话。设置为no,否则设置为yes #客户端输出缓存限制强迫断开读取速度比较慢的客户端 #有三种类型的限制 #normal -> 正常的客户端包括监控客户端 #slave -> 从客户端 # pubsub -> 客户端至少订阅了一个频道或者模式 # 客户端输出缓存限制语法如下(时间单位:秒) # client-output-buffer-limit <类别> <强制限制> <软性限制> <软性时间> # 达到强制限制缓存大小,立刻断开链接。 # 达到软性限制,仍然会有软性时间大小的链接时间 # 默认正常客户端无限制,只有请求后,异步客户端数据请求速度快于它能读取数据的速度 # 订阅模式和主从客户端又默认限制,因为它们都接受推送。 # 强制限制和软性限制都可以设置为0来禁用这个特性 client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 # 设置Redis后台任务执行频率,比如清除过期键任务。 # 设置范围为1到500,默认为10.越大CPU消耗越大,延迟越小。 # 建议不要超过100 aof-rewrite-incremental-fsync yes # 当子进程重写AOF文件,以下选项开启时,AOF文件会每产生32M数据同步一次。 # 这有助于更快写入文件到磁盘避免延迟
本文出自 “岁月在流逝,光辉依然在” 博客,请务必保留此出处http://taokey.blog.51cto.com/4633273/1770855
标签:ip地址 配置文件 example listen 后台运行
原文地址:http://taokey.blog.51cto.com/4633273/1770855