内容简介:绑定的网络IP,如果不指定redis将会监听所有网络接口,建议绑定本地IP。示例:bind 127.0.0.1端口设置,默认为 6379 ,如果port设置为0 redis将不会监听tcp socket。示例:
1、基本配置
1.1、bind
绑定的网络IP,如果不指定 redis 将会监听所有网络接口,建议绑定本地IP。示例:
bind 127.0.0.1
1.2、port
端口设置,默认为 6379 ,如果port设置为0 redis将不会监听tcp socket。示例:
port 6379
1.3、protected-mode
是否开启保护模式。默认开启,如果没有设置bind项的ip和redis密码的话,服务将只允许本地访 问。示例:
protected-mode yes
1.4、daemonize
是否将Redis作为守护进程运行。注意配置成守护进程后Redis会将进程号写入文件/var/run/redis.pid。示例:
daemonize no
1.5、tcp-keepalive
当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能。示例:
tcp-keepalive 300
1.6、tcp-backlog
tcp连接排队队列大小,在高并发环境下需要一个高backlog值来避免慢客户端连接问题。示例:
tcp-backlog 511
1.7、pidfile
pid文件在redis启动时创建,退出时删除,建议配置该项。示例:
pidfile /var/run/redis.pid
1.8、loglevel
配置日志级别。选项有debug, verbose, notice, warning,示例:
loglevel notice
1.9、logfile
日志名称。空字符串表示标准输出。注意如果redis配置为后台进程,标准输出中信息会发送到/dev/null。示例:
logfile /tmp/redis.log
1.10、databases
设置使用第几个数据库,默认为0。示例:
databases 16
1.11、save <seconds> <changes>
持久化设置:
下面的例子将会进行把数据写入磁盘的操作:
900秒(15分钟)之后,且至少1次变更
300秒(5分钟)之后,且至少10次变更
60秒之后,且至少10000次变更
不写磁盘的话就把所有 "save" 设置注释掉就行了。
save 900 1
save 300 10
save 60 10000
1.12、rdbcompression
是否在备份.rdb文件时是否用LZF压缩字符串,默认设置为yes。如果想节约cpu资源可以把它设置为no。示例
rdbcompression yes
1.13、dbfilename
指定本地数据库文件名,默认值为dump.rdb,示例:
dbfilename backup.rdb
1.14、dir
指定本地数据库存放目录,示例
dir /var/run/redis/db/
2、限制性配置
2.1、maxclients
设置最多同时连接的客户端数量。默认这个限制是10000个客户端,然而如果Redis服务器不能配置,处理文件的限制数来满足指定的值,那么最大的客户端连接数就被设置成当前文件限制数减32(因为Redis服务器保留了一些文件描述符作为内部使用)。示例:
maxclients 20000
2.2、maxmemory <bytes>
指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。
max memory 10240000
2.3、maxmemory-policy
最大内存逐出策略:
volatile-lru -> 根据LRU算法删除设置过期时间的key
allkeys-lru -> 根据LRU算法删除任何key
volatile-random -> 随机移除设置过过期时间的key
allkeys-random -> 随机移除任何key
volatile-ttl -> 移除即将过期的key(minor TTL)
noeviction -> 不移除任何key,只返回一个写错误
示例:
maxmemory-policy volatile-lru
2.4、maxmemory-samples
LRU和最小TTL算法的实现都不是很精确,但是很接近(为了省内存),所以你可以用样本量做检测。 例如:默认Redis会检查3个key然后取最旧的那个,你可以通过下面的配置指令来设置样本的个数。
maxmemory-samples 5
3、安全性
3.1、requirepass
客户端连接密码。示例:
requirepass redis@123456
3.2、rename-command
命令重命名。线上一些重要的操作可以进行重命名,防止误操作,比如:
rename-command flushdb fdb
4、主从同步
4.1、slaveof <masterip> <masterport>
主从同步配置,表示当前redis实例连接到master实例的ip和端口,示例:
slaveof 10.17.188.199 6379
4.2、masterauth
master连接密码,示例:
masterauth redis-master@123456
4.3、slave-serve-stale-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 命令。
4.4、slave-read-only
从节点是否只读,一般建议设置为只读,示例:
slave-read-only yes
4.5、repl-diskless-sync
同步策略有两种: 磁盘或socket,默认磁盘方式,如果设置yes就用socket方式:
repl-diskless-sync yes
4.6、repl-diskless-sync-delay
如果socket同步方式开启,可以配置同步延迟时间,以等待master产生子进程通过socket传输RDB数据给slave,默认值为5秒,设置为0秒则每次传输无延迟。:
repl-diskless-sync-delay 5
4.7、repl-ping-slave-period
slave根据指定的时间间隔向master发送ping请求。默认10秒。
4.8、repl-timeout
同步的超时时间:
repl-timeout 120
4.9、repl-disable-tcp-nodelay
是否在slave套接字发送SYNC之后禁用 TCP_NODELAY。如果选择yes,Redis将使用更少的TCP包和带宽来向slaves发送数据。但是这将使数据传输到slave上有延迟,Linux内核的默认配置会达到40毫秒。如果选择no,数据传输到salve的延迟将会减少但要使用更多的带宽。
repl-disable-tcp-nodelay yes
4.10、repl-backlog-size
设置数据备份的backlog大小。backlog是一个slave在一段时间内断开连接时记录salve数据的缓冲,所以一个slave在重新连接时,不必要全量的同步,而是一个增量同步就足够了,将在断开连接的这段# 时间内把slave丢失的部分数据传送给它。
repl-backlog-size 1mb
4.11、repl-backlog-ttl
当master在一段时间内不再与任何slave连接,backlog将会释放。以下选项配置了从最后一个slave断开开始计时多少秒后,backlog缓冲将会释放。0表示永不释放backlog。
repl-backlog-ttl 3600
4.12、slave-priority
slave的优先级是一个整数展示在Redis的Info输出中。如果master不再正常工作了,sentinel将用它来选择一个slave提升为master。优先级数字小的salve会优先考虑提升为master,所以例如有三个slave优先级分别为10,100,25,sentinel将挑选优先级最小数字为10的slave。0作为一个特殊的优先级,标识这个slave不能作为master,所以一个优先级为0的slave永远不会被 sentinel挑选提升为master。
slave-priority 100
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。