五. Redis 配置内容(详细配置说明)
五. Redis 配置内容(详细配置说明)
@
关于 Redis 配置文件的文档说明:https://www.cnblogs.com/nhdlb/p/14048083.html

Redis 的配置的内容,都是在
/etc/redis.conf这个文件当中进行配置设置的。
redis.conf 配置内容有很多很多,这里我们讲解一些比较常用的一些配置信息。
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 客户端

127.0.0.1:6379> acl whoami
# 注意:需要进入到 Redis 客户端

5.3 在 命令行设置密码

127.0.0.1:6379> config get requirepass


127.0.0.1:6379> config set requirepass rainbowsea
6. LIMITS 限制配置
6.1 maxclients(客户端连接数)配置

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

# 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内存不够的算法配置处理)配置

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

# maxmemory-samples 5
- 设置样本数量,LRU 算法和最小 TTL 算法都并非是精确的算法,而是估算值,所以你可 以设置样本的大小,redis 默认会检查这么多个 key 并选择其中 LRU 的那个。
- 一般设置 3 到 7 的数字,数值越小样本越不准确,但性能消耗越小。
举例理解:
简单的比较就是:当你在 8W 个人当中,找到身高 180 的人,很费时间和精力。但是当让你从 10,100个人当中找 身高 180的人,那就更简单了。简单的理解就是一个参考的样本。参考的数量越多精确度越高,但是成本也就越高。参考的数量少的,精确的就越低,但是消耗的成本却更低。
7. 总结:
- 注意: 上述的所有配置都需要将 Redis 服务器,关闭了,再重启后,配置才能生效。
- 查看 redis.conf 配置文件的信息,可以进入到 Redis 客户端后,使用
config get 配置属性/信息命令。注意: 需要先进入到 Redis 客户端才行。

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 客户端才行。同时因为是在 客户端命令设置的配置信息,那么退出了客户端,该命令行配置的信息就都失效了。

127.0.0.1:6379> config set requirepass rainbowsea


127.0.0.1:6379> auth rainbowsea

127.0.0.1:6379> config get requirepass
8. 最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
五. Redis 配置内容(详细配置说明)的更多相关文章
- Redis 配置内容总结
命令 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf. 你可以通过 CONFIG 命令查看或设置配置项. (1)config get config_setting_ ...
- 关于redis的几件小事(五)redis保证高并发以及高可用
如果你用redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了,redis高可用 redis高并发:主从架构 ...
- Redis配置统计字典
本章将对Redis的系统状态信息(info命令结果)和Redis的所有配置(包括Standalone.Sentinel.Cluster三种模式)做一个全面的梳理,希望本章能够成为Redis配置统计字典 ...
- Apollo 配置中心详细教程
一.简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理 ...
- jQuery插件jqplot的详细配置说明和渲染器
jQuery插件jqplot的详细配置说明和渲染器 (2012-08-23 08:57:42) 转载▼ 标签: jqplot 详细配置 渲染器 it 分类: 技术类 jQuery.jqplot插件的官 ...
- 14. Redis配置统计字典
14. Redis配置统计字典14.1 info系统状态说明14.1.1 命令说明14.1.2 详细说明14.2 standalone配置说明和分析14.2.1 总体配置14.2.2 最大内存及策略1 ...
- (转)Springboot日志配置(超详细,推荐)
Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...
- Redis 配置节
Redis 后面的配置基于4.0.9版本=>>>不指定版本信息的配置说明都是耍流氓 比如在4.0.9中没有vm相关的及glueoutputbuf的配置信息 部分常用配置节(后面有详细 ...
- SpringCloud+MyBatis+Redis整合—— 超详细实例(二)
2.SpringCloud+MyBatis+Redis redis①是一种nosql数据库,以键值对<key,value>的形式存储数据,其速度相比于MySQL之类的数据库,相当于内存读写 ...
- 使用Typescript重构axios(十五)——默认配置
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
随机推荐
- Solr学习总结-Facet
返回查询集合中指定field的统计情况,例如找到city一样的文档数目: 加入文档 <add> <doc> <field name="id">1 ...
- Integrating JDBC with Hibernate
One of the powerful things about Hibernate is that you do not typically need to manually write SQL: ...
- Python之解析配置文件
[.env] 1) 使用python-dotenv 安装: pip install python-dotenv 示例配置文件: ADMIN_HOST = https://uat-rm-gwaaa.cn ...
- Tornado框架之项目部署(六)
知识点 supervisor配置与使用 nginx配置 目录: 部署Tornado 1. supervisor 安装 配置 启动 supervisorctl 2. nginx 部署Tornado 为了 ...
- git之常见问题
1. You are in the middle of a merge -- cannot amend 场景:上一次提交,本次提交与上次修改点是同一个, 覆盖是的提交,产生的错误 解决方案: git ...
- Redis集群搭建-多服务器
条件 l 基于redis5.0.*版本进行集群的搭建 l 集群要求至少六个节点,即每个主节点配置1个从节点,本集群是使用了3个主节点并每个下面挂一个从节点,三个主节点分布在3台服务器上 l 集群配置信 ...
- ZCMU-1133
emm就直接看的前辈的了. 唉 #include <stdio.h> #include <string.h> #include <algorithm> //我不成熟 ...
- Python 调整Excel行高、列宽
在Excel中,默认的行高和列宽可能不足以完全显示某些单元格中的内容,特别是当内容较长时.通过调整行高和列宽,可以确保所有数据都能完整显示,避免内容被截断.合理的行高和列宽可以使表格看起来更加整洁和专 ...
- jmeter使用jdbc连接SQL server,执行SQL报错处理
前置环境参数:jdk-8u391-windows-x64,驱动:sqljdbc4.jar 备注:这是解决后的截图,将就用 问题一:使用jmeter5.5,使用jdbc连接SQL server,执行SQ ...
- 详解AQS二:ReentrantLock公平锁原理
ReentrantLock作为我们使用频率最高的显式锁,它是AQS的经典实现,本篇文章将以ReentrantLock公平锁为例讲解AQS的实现. 一.ReentrantLock 在之前的文章<线 ...





