Redis(三)------redis.conf配置文件

前言:

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 ""

如果你觉得本篇文章对你有所帮助的话,麻烦请点击头像右边的关注按钮,谢谢!

技术在交流中进步,知识在分享中传播

发布了166 篇原创文章 · 获赞 212 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/qq_29914837/article/details/103276738
今日推荐