五:Redis配置的深度剖析
目录
- 五. Redis配置内容(详细配置说明)
-
- Units单位相关配置
-
- INCLUDES(包含)配置
-
- NETWORK(网络)配置
- 3.1 bind(配置访问范围)
- 3.2 protected-mode(保护模式设置)
- 3.3 port(端口)配置
- 3.4 timeout(客户端超时)配置
- 3.5 tcp-keepalive(心跳检测)配置
-
- GENERAL 通用配置
- 4.1 daemonize(后台运行)配置
- 4.2 pidfile(pid文件路径)配置
- 4.3 loglevel(日志级别)配置
- 4.4 logfile(日志文件)配置
- 4.5 databases 16(数据库数量)配置
-
- SECURITY 安全配置
- 5.1 在redis.conf中设置密码(永久生效)
- 5.3 在命令行设置密码
-
- LIMITS 限制配置
- 6.1 maxclients(客户端连接数)配置
- 6.2 maxmemory(Redis最大内存)配置
- 6.3 maxmemory-policy(内存不足策略)配置
- 6.4 maxmemory-samples(内存算法样本)配置
-
- 总结:
-
- 最后:
1. Units单位相关配置
:set number # 在vim编辑器中,用于显示行号
- 配置中的大小单位,起始定义了一些基本的度量单位,仅支持字节(bytes),不支持比特(bit),这是默认设定,可依据实际需求自行调整。
- 默认情况下不区分大小写,对于命令而言,也可自行对配置进行调整。
2. INCLUDES(包含)配置
该配置信息表示:多实例情况下可将公用配置文件提取出来,通过include
进行导入。
3. NETWORK(网络)配置
3.1 bind(配置访问范围)
bind 127.0.0.1 -::1
- 默认状态下
bind 127.0.0.1
意味着仅能接收本地(本机)的访问请求,其他主机无法进行访问。 - 若服务器需要远程访问,需将其注释掉。
- 在此处,可启动redis,查看当前允许连接的状况。
注销bind配置,重新启动redis,再查看当前允许连接的情形。
注意: 需将Redis服务器关闭后再重启,配置方能生效。
[root@localhost ~]# redis-cli -p 6379 shutdown
3.2 protected-mode(保护模式设置)
默认处于保护模式,也就是 protected-mode no
。
若服务器需要远程访问,需将yes设置为no
3.3 port(端口)配置
Redis服务默认端口为6379,可自行进行修改,但需留意处于
655535
的范围内。
3.4 timeout(客户端超时)配置
如图默认配置:
timeout 0
一个空闲的客户端维持多少秒会被关闭,0表示关闭该功能,即永不超时 。可根据实际需求自行调整。
3.5 tcp-keepalive(心跳检测)配置
tcp-keepalive 300
tcp-keepalive
是对访问客户端的一种心跳检测机制,每隔n秒进行一次检测,单位为秒。- 若设置为0,则不会进行keepalive检测,建议将其设置为60
为何需要心跳检测机制:
- TCP协议存在长连接和短连接的区别。短连接环境下,数据交互完成后,会主动释放连接。
- 在长连接环境中,进行一次数据交互后,若长时间无数据交互,客户端可能意外断开,这些TCP连接并未得到正常释放,那么连接的另一方并不知晓对端的状况。就会一直保持这个连接,长时间积累会产生大量半打开连接,造成端系统资源的消耗与浪费,还有可能在无效的数据链路层面发送业务数据,导致发送失败。所以服务端要快速感知失败,减少无效连接操作,这就有了TCP的Keepalive(保活探测)机制
tcp-keepalive 10
配置完成后,需重启Redis服务方能生效。
[root@localhost etc]# redis-cli -p 6379 shutdown
4. GENERAL 通用配置
4.1 daemonize(后台运行)配置
daemonize yes
- 是否为后台进程,设置为yes
- 设置为yes后,表示以守护进程方式运行,后台启动
4.2 pidfile(pid文件路径)配置
pidfile /var/run/redis_6379.pid
存放pid文件的位置,每个实例会生成不同的pid文件,用于记录redis的进程号
[root@localhost run]# ps -ef | grep redis
[root@localhost run]# cat redis_6379.pid
[root@localhost run]# ps -aux | grep sshd
4.3 loglevel(日志级别)配置
loglevel notice
Redis日志分为4个级别,默认设置为notice,开发测试阶段可使用debug(日志内容较多,不建议生产环境使用),生产模式一般选用notice
Redis日志级别如下4种 :
debug
:会打印大量信息,适用于开发和测试阶段。verbose(冗长的)
:包含较多不太有用的信息,但比debug清爽些。notice
:适用于生产模式。warning
:警告信息。
127.0.0.1:6379> config get loglevel
4.4 logfile(日志文件)配置
logfile ""
- logfile ""表示默认在控制台打印,不会生成日志文件
-
可为redis.conf的logfile指定配置项。例如:
logfile "/var/log/redis/redis.log"
修改配置文件后,需重启redis才能生成日志文件。
127.0.0.1:6379> config get logfile
4.5 databases 16(数据库数量)配置
databases 16
- 设定库的数量,默认是16个,默认数据库为0号,数据库索引从0开始
- 可使用
select<dbid>
命令在连接上指定数据库id
5. SECURITY 安全配置
SECURITY安全配置是为Redis客户端登录时设置密码。
在Redis中,设置密码有两种方式:
5.1 在redis.conf中设置密码(永久生效)
# requirepass foobared
此处进行测试,将注释取消,使用 foobared
作为密码。
requirepass foobared
修改配置后,需重启Redis服务方能生效。
127.0.0.1:6379> auth foobared
127.0.0.1:6379> auth 密码 # 登录redis客户端,使用密码
127.0.0.1:6379> acl list
# 注意:需进入Redis客户端
![在这里插入图片描述](https://img2024.cnblogs.com/blog/3084824/202501/3084824-202
文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12527.html