redis-4.0.11的配置说明

参考了文档和别人的解释,有很多功能没用到,以及解释的不购详细。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#只允许指定地址访问
#bind 192.168.1.100 10.0.0.1
#允许其他地址访问,否则只允许127.0.0.1访问,如果配置了bind和密码,则protected-mode无效。
protected-mode no
#端口
port 7379
#tcp最大连接数(不是客户端最大连接数,可以理解为待连接,正在排队),因为该配置会同时受到linux的限制,所以如果想要它有效要确保Linux的somaxconn和tcp_max_syn_backlog比它大
tcp-backlog 511
#客户端连接空闲多少秒后关闭连接,0永不关闭,一般设置为5分钟
timeout 300
#如果值非0,单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是60S。
tcp-keepalive 300
#守护模式
daemonize yes
#如果你想通过upstart or systemd进行管理redis,则可以配置多个模式,默认为NO。
supervised no
#PID文件路径
pidfile "/home/session/redis/conf/redis_slave1.pid"
#master的请求密码
masterauth "phFUND_linux_redis"
#自己的请求密码
requirepass "phFUND_linux_redis"
#日志级别,如果的测试可以用debug,平时用notice就够了。
loglevel notice
#日志的路径,如果不配置该项则会把日志打印到控制台
logfile "/home/session/redis/logs/redis_7379.log"
#redis没有和oracle一样多用户的概念,不同客户端可以访问属于自己的key,单又不影响使用。默认为 DB 0,select <dbid> 命令选择一个不同的数据库,但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值.
databases 16
#redis启动时是否显示log。
always-show-logo yes
#根据给定的时间间隔和写入次数将数据保存到磁盘
# 900秒(15分钟)之后,且至少1次变更
# 300秒(5分钟)之后,且至少10次变更
# 60秒之后,且至少10000次变更
save 900 1
save 300 10
save 60 10000
# 默认如果开启RDB快照(至少一条save指令)并且最新的后台保存失败,Redis将会停止接受写操作
# 这将使用户知道数据没有正确的持久化到硬盘,否则可能没人注意到并且造成一些灾难
# 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作
stop-writes-on-bgsave-error yes
# 当导出到 .rdb 数据库时是否用LZF压缩字符串对象,默认都设为 yes
rdbcompression yes
# 是否校验rdb文件,版本5的RDB有一个CRC64算法的校验和放在了文件的最后。这将使文件格式更加可靠。
rdbchecksum yes
# 持久化数据库的文件名
dbfilename "dump_slave1.rdb"
# 工作目录
# 例如上面的 dbfilename 只指定了文件名,但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名
dir "/home/session/redis/data"
# 当一个slave失去和master的连接,或者同步正在进行中,slave的行为可以有两种表现:
#
# 1) 如果 slave-serve-stale-data 设置为 "yes" (默认值),slave会继续响应客户端请求,
# 可能是正常数据,或者是过时了的数据,也可能是还没获得值的空数据。
# 2) 如果 slave-serve-stale-data 设置为 "no",slave会回复"正在从master同步
# (SYNC with master in progress)"来处理各种请求,除了 INFO 和 SLAVEOF 命令。
slave-serve-stale-data yes
#为slave时,只读模式
slave-read-only yes
#是否使用socket方式复制数据。
#目前redis复制提供两种方式,disk和socket。
#如果新的slave连上来或者重连的slave无法部分同步,就会执行全量同步,master会生成rdb文件。
#有2种方式:disk方式是master创建一个新的进程把rdb文件保存到磁盘,再把磁盘上的rdb文件传递给slave。
#socket是master创建一个新的进程,直接把rdb文件以socket的方式发给slave。disk方式的时候,
#当一个rdb保存的过程中,多个slave都能共享这个rdb文件。socket的方式就的一个个slave顺序复制。在磁盘速度缓慢,网速快的情况下推荐用socket方式。
repl-diskless-sync no

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

# 是否在slave套接字发送SYNC之后禁用 TCP_NODELAY?
# 如果你选择“yes”Redis将使用更少的TCP包和带宽来向slaves发送数据。但是这将使数据传输到slave上有延迟,Linux内核的默认配置会达到40毫秒
# 如果你选择了 "no" 数据传输到salve的延迟将会减少但要使用更多的带宽
repl-disable-tcp-nodelay no
#优先级,数值最小的优先级高,如果为0则不能升级为master
slave-priority 100
#当redis设置了被动淘汰机制时,启用延迟删除功能,他会把元素大于64的集合键交给BIO(Background I/O)处理。
#避免了长时间删除键带来的阻塞和性能影响。因为redis是单线程的所以,如果删除一个键时间太长,其他的指令会被阻塞。
lazyfree-lazy-eviction no
#对设置了TTL过期时间的key使用该策略
lazyfree-lazy-expire no
#针对有些指令在处理已存在的键时,会带有一个隐式的DEL键的操作。
#如rename命令,当目标键已存在,redis会先删除目标键,如果这些目标键是一个big key,那就会引入阻塞删除的性能问题。 此参数设置就是解决这类问题,建议可开启。
lazyfree-lazy-server-del no
#针对slave进行全量数据同步,slave在加载master的RDB文件前,会运行flushall来清理自己的数据场景,
#参数设置决定是否采用异常flush机制。如果内存变动不大,建议可开启。可减少全量同步耗时,从而减少主库因输出缓冲区爆涨引起的内存使用增长。
slave-lazy-flush no

#AOF是一种提供了更可靠的替代持久化模式,例如使用默认的数据写入文件策略。在遇到像服务器断电或单写情况下Redis自身进程出问题但操作系统仍正常运行等突发事件时Redis能只丢失1秒的写操作。
#如果AOF开启,那么在启动时Redis将加载AOF文件,它更能保证数据的可靠性。
appendonly no
# aof文件名
appendfilename "appendonly_slave1.aof"
#AOF的数据同步策略
# no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快。
# always:每次写操作都立刻写入到aof文件。慢,但是最安全。
# everysec:每秒写一次。折中方案。
appendfsync everysec

#AOF和RDB执行重写时,会产生大量IO导致可能阻塞新的写入操作。如果设置为yes,则在rewrite期间(30S)不持久化,但可能丢失数据,一般默认为no。
no-appendfsync-on-rewrite no
#aof自动重写配置。当目前aof文件大小超过上一次重写的aof文件大小的百分之多少进行重写,设置为100,意思是超过100百分百,也就是2倍进行重写。
auto-aof-rewrite-percentage 100
#设置允许重写的最小aof文件大小,避免了达到约定百分比但尺寸仍然很小的情况还要重写
auto-aof-rewrite-min-size 64mb

#如果因为其他原因,比如系统断电导致文件不完整。
#设置为no的时候,需要用户手动检查文件的完整性(redis-check-aof)。如果为YES则会通知客户,然后自己尝试尽可能的加载数据。
aof-load-truncated yes
#4.0 新特性 启用RDB-AOF混合持久化
aof-use-rdb-preamble no
#lua脚本可执行的最大时间为5000毫秒
lua-time-limit 5000
#慢查询的记录长度,这个大小可以自己配置,是记录在redis的内存中,没有上限设置。可以在redis-cli 中执行slowlog get来获取,又可以通过SLOWLOG reset来清除。
slowlog-max-len 128

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

# Redis能通过 发布/订阅功能 告知客户端关于键空间发生的事件(比如,过期,删除等),默认关闭,如果需要这个功能再仔细研究。
notify-keyspace-events ""

# 当hash只有少量的entry时,并且最大的entry所占空间没有超过指定的限制时,会用一种节省内存的
# 数据结构来编码。可以通过下面的指令来设定限制
#表示当hash项(field,value)数>512即ziplist项>1024的时候转为dict
hash-max-ziplist-entries 512
#表示当hash中的value长度超过64的时候转为dict。
hash-max-ziplist-value 64

#和上面hash一样的用法,也是用来做数据结构优化的。
list-max-ziplist-size -2
list-compress-depth 0

#数据量小于等于set-max-intset-entries用iniset,大于set-max-intset-entries用set。
set-max-intset-entries 512
#和上面hash一样的用法,也是用来做数据结构优化的。
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

#value大小小于等于hll-sparse-max-bytes使用稀疏数据结构(sparse),大于hll-sparse-max-bytes使用稠密的数据结构(dense)。
#一个比16000大的value是几乎没用的,建议的value大概为3000。如果对CPU要求不高,对空间要求较高的,建议设置到10000左右。
hll-sparse-max-bytes 3000

#Redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用。如果请求多时效性要求高可以配置为no。
activerehashing yes
#对客户端输出缓冲进行限制可以强迫那些不从服务器读取数据的客户端断开连接,用来强制关闭传输缓慢的客户端。
client-output-buffer-limit normal 0 0 0
#对于slave client和MONITER client,如果client-output-buffer一旦超过256mb,又或者超过64mb持续60秒,那么服务器就会立即断开客户端连接
client-output-buffer-limit slave 256mb 64mb 60
#对于pubsub client,如果client-output-buffer一旦超过32mb,又或者超过8mb持续60秒,那么服务器就会立即断开客户端连接。
client-output-buffer-limit pubsub 32mb 8mb 60

#redis执行任务的频率为1s除以hz。
hz 10
#在aof重写的时候,如果打开了aof-rewrite-incremental-fsync开关,系统会每32MB执行一次fsync。这对于把文件写入磁盘是有帮助的,可以避免过大的延迟峰值。
aof-rewrite-incremental-fsync yes

# Generated by CONFIG REWRITE
maxclients 4064
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值