前言:
redis.conf配置文件是redis的核心,本文记录了常用的配置项含义
一、常规配置
1、是否在后台执行,yes:后台运行;no:不是后台运行
redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程**
daemonize yes
2、redis的进程文件
当redis以守护进程方式运行时,redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
pidfile /var/run/redis.pid
3、redis监听的端口号
指定Redis监听端口,默认端口为6379
port 6379
4、 绑定的主机地址
指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,建议修改为服务器的对外IP
bind 127.0.0.1
5、当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 300
6、指定日志记录级别
redis总共支持四个级别,默认为notice。
级别包括:debug(很多信息,方便开发、测试),verbose(许多有用的信息,但是没有debug级别信息多),notice(适当的日志级别,适合生产环境),warn(只有非常重要的信息)
loglevel notice
7、日志文件路径的设置
日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null 。
这里需要注意:日志文件目录如果不存在需要先手动引导创建,否则无法启动redis
logfile "/var/log/redis/redis.log"
8、设置数据库的数量
默认数据库为0,可以使用SELECT 命令在连接上指定数据库id
databases 16
9、是否开启保护模式
默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问
protected-mode yes
10、TCP连接中已完成队列(完成三次握手之后)的长度
当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。在/etc/sysctl.conf中添加:net.core.somaxconn = 2048,然后在终端中执行sysctl -p。
tcp-backlog 511
11、存储至本地数据库时是否压缩数据
默认为yes,redis采用LZF压缩。yes:压缩,但是需要一些cpu的消耗。no:不压缩,需要更多的磁盘空间,但会导致数据库文件变的巨大
rdbcompression yes
12、指定本地数据库文件名
默认值为dump.rdb
dbfilename dump.rdb
13、 指定本地数据库存放目录
dir /var/lib/redis
二、限制配置
1、设置同一时间最大客户端连接数,默认无限制
redis可以同时打开的客户端连接数为redis进程可以打开的最大文件描述符数。
如果设置 maxclients 0,表示不作限制。
一旦达到这个限制,Redis会关闭所有新连接并发送错误"达到最大用户数上限(max number of clients reached
# maxclients 10000
2、redis配置的最大内存容量
redis在启动时会把数据加载到内存中,当内存满了,需要配合maxmemory-policy策略进行处理。
达到最大内存后,redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
# maxmemory <bytes>
3、内存策略:如果达到内存限制了,Redis如何删除key
volatile-lru -> 根据LRU算法生成的过期时间来删除。
allkeys-lru -> 根据LRU算法删除任何key。
volatile-random -> 根据过期设置来随机删除key。
allkeys->random -> 无差别随机删。
volatile-ttl -> 根据最近过期时间来删除(辅以TTL)
noeviction -> 谁也不删,直接在写操作时返回错误。
maxmemory-policy volatile-lru
4、lru检测的样本数
使用lru或者ttl淘汰算法,从需要淘汰的列表中随机选择sample个key,选出闲置时间最长的key移除。
maxmemory-samples 5
三、安全配置
1、设置redis连接密码,默认关闭
requirepass配置可以让用户使用AUTH命令来认证密码,才能使用其他命令。这让redis可以使用在不受信任的网络中。为了保持向后的兼容性,可以注释该命令,因为大部分用户也不需要认证。使用requirepass的时候需要注意,因为redis太快了,每秒可以认证15w次密码,简单的密码很容易被攻破,所以最好使用一个更复杂的密码。注意只有密码没有用户名。
# requirepass foobared
2、命令重命名
把危险的命令给修改成其他名称。比如CONFIG命令可以重命名为一个很难被猜到的命令,这样用户不能使用,而内部工具还能接着使用。
rename-command CONFIG xodbofbfw123
3、禁止命令
设置成一个空的值,可以禁止一个命令
rename-command CONFIG ""
如果你觉得本篇文章对你有所帮助的话,麻烦请点击头像右边的关注按钮,谢谢!
技术在交流中进步,知识在分享中传播