络腮胡菲菲 发表于 2025-2-12 17:09:04

五. Redis 配置内容(详细配置说明)

五. Redis 配置内容(详细配置说明)

@
目录

[*]五. Redis 配置内容(详细配置说明)
[*]1. Units 单位配置
[*]2. INCLUDES (包含)配置
[*]3. NETWORK (网络)配置

[*]3.1 bind(配置访问内容)
[*]3.2 protected-mode (保护模式)
[*]3.3 port(端口)配置
[*]3.4 timeout(客户端超时时间)配置
[*]3.5   tcp-keepalive()配置

[*]4. GENERAL 通用配置

[*]4.1 daemonize(背景启动)配置
[*]4.2 pidfile(pid 文件存在路径)配置
[*]4.3 loglevel(日志级别)配置
[*]4.4 logfile(日志文件)配置
[*]4.5 databases 16(堆栈数量)配置

[*]5. SECURITY 安全配置

[*]5.1 在 redis.conf 配置文件当中设置密码(永久)
[*]5.3 在 下令行设置密码

[*]6. LIMITS 限定配置

[*]6.1 maxclients(客户端连接数)配置
[*]6.2 maxmemory(Redis 最大占用内存)配置
[*]6.3 maxmemory-policy(Redis内存不够的算法配置处理)配置
[*]6.4 maxmemory-samples(内存算法处理的比力样本) 配置

[*]7. 总结:
[*]8. 最后:

关于 Redis 配置文件的文档说明:https://www.cnblogs.com/nhdlb/p/14048083.html
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457464-1603214564.png
Redis 的配置的内容,都是在 /etc/redis.conf 这个文件当中进行配置设置的。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094458008-1009773222.png
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457978-1102153624.png
redis.conf 配置内容有很多很多,这里我们讲解一些比力常用的一些配置信息。
1. Units 单位配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457597-1428481531.png
:set number   # 在 vim 工具当中 ,表示显示行号
[*]配置大小单位,开头定义了一些基本的度量单位,只支持 bytes(字节) ,不支持 bit(比特),这是默认的,大家可以更加需要自行修改。
[*]默认是不区分大小写的,对于下令来说,这个也是大家可以自行修改配置的。
2. INCLUDES (包含)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457642-1658160427.png
该配置信息表示:多实例的情况可以把公用的配置文件提取出来,然后 include 导入 。
3. NETWORK (网络)配置

3.1 bind(配置访问内容)

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457795-2005230206.png
bind 127.0.0.1 -::1
[*]默认情况 bind 127.0.0.1表示只能接收当地(本机)的访问请求,其它的主机是无法访问的。
[*]假如服务器是需要远程访问的,需要将其注释掉。
[*]这里,我们可以启动 redis ,查察当前允许连接的情况。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457926-2090583602.png
注销 bind ,重新启动 redis,再查察当前允许连接的情况。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457673-1926624820.png
注意: 需要将 Redis 服务器,关闭了,再重启后,配置才能生效。
# redis-cli-p 6379 shutdownhttps://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457858-1233912666.png
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457906-290120977.png
3.2 protected-mode (保护模式)

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457769-2131791323.png
默认是保护模式,也就是 protected-mode no 。
假如服务器是需要远程访问的, 需要将 yes 设置为 no
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457573-1728663793.png
3.3 port(端口)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457627-1776707198.png
Redis 服务默认端口6379,可以自行修改,但是注意要在 655535 的范围。
3.4 timeout(客户端超时时间)配置

如图默认配置:
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457891-266506026.png
timeout 0一个空闲的客户端维持多少秒会关闭,0 表示关闭该功能,即永不超时 。大家可以根据需要自行修改。
3.5   tcp-keepalive()配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457835-1079766289.png
tcp-keepalive 300
[*]tcp-keepalive 是对访问客户端的一种心跳检测,每隔 n 秒检测一次,单位为秒。
[*]假如设置为 0 ,则不会进行 keepalive 检测,建议设置成 60
为什么需要心跳检测机制:

[*]TCP 协议中有长连接 和 短连接 之分。短连接 情况下,数据交互完毕后,主动开释连接。
[*]长连接 的情况下,进行一次数据交互后,很长一段时间内无数据交互时,客户端可能意外断开,这些 TCP 连接并未来得及正常开释 ,那么,连接的另一方并不知道对端的情况。就会一直维护这个连接,长时间的积累会导致非常多的半打开连接,造成端系统资源的消耗和浪费,且有可能导致在一个无效的数据链路层面发送业务数据,结果就是发送失败。以是服务端要做到快速感知失败,减少无效链接操作,这就有了 TCP 的 Keepalive(保活探测) 机制
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457598-72915594.png
tcp-keepalive 10配置成功后,需要重启 Redis 服务才会生效。
# redis-cli -p 6379 shutdown4. GENERAL 通用配置

4.1 daemonize(背景启动)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457871-1630618930.png
daemonize yes
[*]是否为背景进程,设置为 yes
[*]设置为 yes 后,表示守护进程,背景启动
4.2 pidfile(pid 文件存在路径)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457604-1210738177.png
pidfile /var/run/redis_6379.pid存放 pid 文件的位置,每个实例会产生一个不同的 pid 文件, 记载 redis 的进程号
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457674-206152395.png
# ps -ef | grep redis# cat redis_6379.pid https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457830-1895107567.png
# ps -aux | grep sshdhttps://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457800-348779154.png
4.3 loglevel(日志级别)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457864-2084714757.png
loglevel noticeRedis 日志分为 4 个级别,默认的设置为 notice,开发测试阶段可以用 debug(日志内容较多,不建议生产情况使用),生产模式一般选用 notice
Redis 日志级别为如下 4 种 :

[*]debug :会打印很多信息,实用于开发和测试阶段。
[*]verbose(冗长的) :包含很多不太有用的信息,但比 debug 要清爽一些。
[*]notice :实用于生产模式。
[*]warning :告诫信息。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457831-1595854906.png
127.0.0.1:6379> config get loglevel4.4 logfile(日志文件)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457965-2113709565.png
logfile ""
[*]logfile ""就是说,默认为控制台打印,并没有日志文件生成
[*]可以为 redis.conf 的 logfile 指定配置项。如下:
logfile "/var/log/redis/redis.log"https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457950-1652420662.png
修改了配置文件,需要重启 redis 才会生成。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094458009-1036697727.png
127.0.0.1:6379> config get logfile4.5 databases 16(堆栈数量)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457982-815975314.png
databases 16
[*]设定库的数量,默认是16个,默认数据库为 0 号,数据库索引是从 0 开始的
[*]可以实用 select 下令在连接上指定数据库 id
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457936-1151947699.png
5. SECURITY 安全配置

SECURITY 安全配置,就是为 Redis 客户端登录的时候,设置密码。
在 Redis 当中,设置密码有两种方式:
5.1 在 redis.conf 配置文件当中设置密码(永久)

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457891-966629363.png
# requirepass foobared这里我们测试,将注释去掉,实用这个 foobared 作为密码。
requirepass foobaredhttps://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094458023-1143417657.png
修改了配置,需要重启 Redis 服务,才会生效。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457924-1556759790.png
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457805-46630818.png
127.0.0.1:6379> auth foobared
127.0.0.1:6379> auth 密码   # 登录 redis 客户端,使用密码https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457971-1423225042.png
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457990-1867650124.png
127.0.0.1:6379> acl list
# 注意:需要进入到 Redis 客户端https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457872-1687353013.png
127.0.0.1:6379> acl whoami
# 注意:需要进入到 Redis 客户端https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457895-463811204.png
5.3 在 下令行设置密码

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457658-329501373.png
127.0.0.1:6379> config get requirepasshttps://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457770-282648606.png
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457887-762229853.png
127.0.0.1:6379> config set requirepass rainbowsea6. LIMITS 限定配置

6.1 maxclients(客户端连接数)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457822-889025738.png

[*]设置 Redis 同时可以与多少个客户端进行连接(包括远程连接)
[*]默认情况下为 10000 个客户端。
[*]假如达到了此限定,redis 会拒绝新的连接请求,并且向这些连接请求方发出 “max number of clients reached”
[*]注意一点的是:当凌驾连接数量了,你可以进入到 Redis 客户端,但是的下令是不会被 Redis 实行的,并提示 “max number of clients reached” 。
6.2 maxmemory(Redis 最大占用内存)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457886-521886752.png
# maxmemory <bytes>
[*]在默认情况下, 对 32 位 实例会限定在 3 GB, 由于 32 位的机器最大只支持 4GB 的 内存,而系统本身就需要一定的内存资源来支持运行,以是 32 位机器限定最大 3 GB 的 可用内存是非常公道的,这样可以制止由于内存不足而导致 Redis 实例瓦解
[*]在默认情况下,对于64位实例是没有限定
[*]当用户开启了redis.conf 配置文件的maxmemory选项,那么Redis将限定选项的值 不能小于1 MB
maxmemory 设置的建议:

[*]Redis 的 maxmemory 设置取决于使用情况, 有些网站只需要 32MB,有些可能需要 12GB
[*]maxmemory 只能根据具体的生产情况来调试,不要预设一个定值,从小到大测试, 基本标准是不干扰正常步伐的运行。
[*]Redis 的最大使用内存跟搭配方式有关,假如只是用 Redis 做纯缓存, 64-128M 对一般小 型网站就足够了
[*]假如使用 Redis 做数据库的话,设置到物理内存的 1/2 到 3/4 左右都可以
[*]假如使用了快照功能的话,最好用到 50%以下,由于快照复制更新需要双倍内存空间, 假如没有使用快照而设置 redis 缓存数据库,可以用到内存的 80%左右,只要能保证 Java、 NGINX 等其它步伐可以正常运行就行了
6.3 maxmemory-policy(Redis内存不够的算法配置处理)配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457898-1641359474.png
# maxmemory-policy noevictiopolicy 可以配置如下选项:

[*]volatile-lru:使用 LRU 算法移除 key,只对设置了逾期时间的键;(最近最少使用)
[*]allkeys-lru:在所有集合 key 中,使用 LRU 算法移除 key
[*]volatile-random:在逾期集合中移除随机的 key,只对设置了逾期时间的键
[*]allkeys-random:在所有集合 key 中,移除随机的 key
[*]volatile-ttl:移除那些 TTL 值最小的 key,即那些最近要逾期的 key
[*]noeviction:不进行移除。针对写操作,只是返回错误信息
无论是选择那种配置,都会丢失数据,以是,尽量照旧设置好符合的 Redis 内存,方式内存不够用 。
6.4 maxmemory-samples(内存算法处理的比力样本) 配置

https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457880-78526219.png
# maxmemory-samples 5
[*]设置样本数量,LRU 算法和最小 TTL 算法都并非是精确的算法,而是估算值,以是你可 以设置样本的大小,redis 默认会检查这么多个 key 并选择其中 LRU 的那个。
[*]一般设置 3 到 7 的数字,数值越小样本越不正确,但性能消耗越小。
举例理解:
简朴的比力就是:当你在 8W 个人当中,找到身高 180 的人,很费时间和精力。但是当让你从 10,100个人当中找 身高 180的人,那就更简朴了。简朴的理解就是一个参考的样本。参考的数量越多精确度越高,但是成本也就越高。参考的数量少的,精确的就越低,但是消耗的成本却更低。
7. 总结:


[*]注意: 上述的所有配置都需要将 Redis 服务器,关闭了,再重启后,配置才能生效。
[*]查察 redis.conf 配置文件的信息,可以进入到 Redis 客户端后,使用 config get 配置属性/信息 下令。注意: 需要先进入到Redis 客户端才行。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457600-900184304.png
127.0.0.1:6379> config get loglevel
1) "loglevel"
2) "notice"
127.0.0.1:6379> config get logfile
1) "logfile"
2) ""
[*]在下令行当中设置 redis.conf 配置文件的信息,可以进入到 Redis 客户端后,使用 config set 配置属性/信息 下令。注意: 需要先进入到Redis 客户端才行。同时由于是在 客户端下令设置的配置信息,那么退出了客户端,该下令行配置的信息就都失效了。
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457949-1891748083.png
127.0.0.1:6379> config set requirepass rainbowseahttps://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457593-340840508.png
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094457772-2042336846.png
127.0.0.1:6379> auth rainbowseahttps://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094458024-1734014935.png
127.0.0.1:6379> config get requirepass8. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和复兴是我创作的动力源泉,我从你们身上汲取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
https://img2024.cnblogs.com/blog/3084824/202501/3084824-20250131094458272-57138830.gif

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 五. Redis 配置内容(详细配置说明)