五. 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

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 配置内容(详细配置说明)1. Units 单位配置2. INCLUDES (包含)配置3. NETWORK (网络)配置3.1 bind(配置访问内容)3.2 protected-mode (保护模式)3.3 port(端口)配置3.4 timeout(客户端超时时间)配置3.5 tcp-keepalive()配置…...
安卓通过网络获取位置的方法
一 方法介绍 1. 基本权限设置 首先需要在 AndroidManifest.xml 中添加必要权限: xml <uses-permission android:name"android.permission.INTERNET" /> <uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" /&g…...
python leetcode 笔记
只为记录一些python相关的特殊写法 无穷大,无穷小,NAN float(inf), float(-inf), float(nan) 判断字符的类型 isdigit(x) isspace(x) 字符串拼接 /.join([a,b,c]) # a/b/c 格式转换,字符转整形 ord(a) # 97 chr(97) # a 进制转…...
使用HttpClient和HttpRequest发送HTTP请求
项目中经常会用到向第三方系统发送请求来传递数据或者获得信息,一般用的比较多的为HttpClient 和 HttpRequest,这里简要总结一下 HttpClient 和 HttpRequest 的用法 一、HttpClient 1. 发送get请求 public static String get(String url, Map<Stri…...
(9) 上:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同
(1)经过之前的学习。俺认为结论是这样的,因为三次握手到四次挥手,到 RST 报文,都是 tcp 连接上收到了报文,这都属于读事件。所以: EPOLLIN : 包含了读事件, FIN 报文的正常四次挥手、…...
C#属性和字段(访问修饰符)
不同点逻辑性/灵活性存储性访问性使用范围安全性属性(Property)源于字段,对字段的扩展,逻辑字段并不占用实际的内存可以被其他类访问对接收的数据范围做限定,外部使用增加了数据的安全性字段(Field)不经过逻辑处理占用内存的空间及位置大部分字段不能直接被访问内存使用不安全 …...
【C语言指针】指针和函数
文章目录 一、前言二、指针函数2.1 概念2.2 定义2.3 具体例子 三、函数指针3.1 概念3.2 定义3.3 具体例子3.4 回调函数3.4.1 概念3.4.2 例子13.4.3 例子2 四、函数指针数组4.1 概念4.2 定义4.3 具体例子 五、函数指针数组的指针5.1 概念5.2 定义5.3 具体例子 一、前言 关于指针…...
因果推断与机器学习—用机器学习解决因果推断问题
Judea Pearl 将当前备受瞩目的机器学习研究戏谑地称为“仅限于曲线拟合”,然而,曲线拟合的实现绝非易事。机器学习模型在图像识别、语音识别、自然语言处理、蛋白质分子结构预测以及搜索推荐等多个领域均展现出显著的应用效果。 在因果推断任务中,在完成因果效应识别之后,需…...
2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入
2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入 在全球化的今天,企业面临着管理多站点的挑战,尤其是跨语言和地理位置的站点。为此,我们设计了一套基于PHP的全自动企业站群镜像管理系统,它不仅能够自动化站点的管理&…...
基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发
基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发 摘要 随着人工智能技术的不断发展,语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东…...
日志2025.2.1
日志2025.2.1 1.做了敌人状态机 public class EnermyStateMachine { public EnermyState currentState { get; private set; } public void InitializeState(EnermyState startState) { currentState startState; currentState.Enter(); } public void Change…...
GIS与相关专业软件汇总
闲来无事突然想整理一下看看 GIS及相关领域 究竟有多少软件或者工具包等。 我询问了几个AI工具并汇总了一个软件汇总,不搜不知道,一搜吓一跳,搜索出来了大量的软件,大部分软件或者工具包都没有见过,不知大家还有没有要…...
webrtc编译需要常用环境变量以及相关名词解释
set vs2022_installD:\\vs2022 set GYP_MSVS_OVERRIDE_PATHD:\\vs2022 set GYP_GENERATORSmsvs-ninja,ninja set WINDOWSSDKDIRD:\\Windows Kits\10 set DEPOT_TOOLS_WIN_TOOLCHAIN0 set GYP_MSVS_VERSION2022 这些环境变量是为了编译 WebRTC 时让 GYP/Depot Tools 正确找到 V…...
飞书项目流程入门指导手册
飞书项目流程入门指导手册 参考资料准备工作新建空间国际化配置新建工作项字段管理新建字段对接标识授权角色 流程管理基础说明流程节点配置流程节点的布局配置页面上布局按钮布局配置 流程节点驳回流程图展示自动化字段修改 局限性 参考资料 飞书官方参考文档:飞书…...
Android学习制作app(ESP8266-01S连接-简单制作)
一、理论 部分理论见arduino学习-CSDN博客和Android Studio安装配置_android studio gradle 配置-CSDN博客 以下直接上代码和效果视频,esp01S的收发硬件代码目前没有分享,但是可以通过另一个手机网络调试助手进行模拟。也可以直接根据我的代码进行改动…...
docker直接运行arm下的docker
运行环境是树莓派A 处理器是 arm32v6 安装了docker,运行lamp 编译安装php的时候发现要按天来算,于是用电脑vm下的Ubuntu系统运行arm的docker 然后打包到a直接导入运行就可以了 第一种方法 sudo apt install qemu-user-static 导入直接运行就可以了…...
PYH与MAC的桥梁MII/MIIM
在学习车载互联网时,看到了一句话,Processor通过DMA直接存储访问与MAC之间进行数据的交互,MAC通过MII介质无关接口与PHY之间进行数据的交互。常见的以太网硬件结构是,将MAC集成进Processor芯片,将PHY留在Processor片外…...
如何使用SliverList组件
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容,本章回中将介绍SliverList组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件,类似我们之前介…...
SQL UCASE() 函数详解
SQL UCASE() 函数详解 在SQL中,UCASE() 函数是一个非常有用的字符串处理函数,它可以将字符串中的所有小写字母转换为大写字母。本文将详细介绍UCASE() 函数的用法、语法、示例以及其在实际应用中的优势。 一、UCASE() 函数简介 UCASE() 函数是SQL标准…...
单细胞分析基础-第一节 数据质控、降维聚类
scRNA_pipeline\1.Seurat 生物技能树 可进官网查询 添加链接描述 分析流程 准备:R包安装 options("repos"="https://mirrors.ustc.edu.cn/CRAN/") if(!require("BiocManager")) install.packages("BiocManager",update = F,ask =…...
Vue 与 Electron 结合开发桌面应用
1. 引言 1.1 什么是 Electron? Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的框架。它结合了 Chromium 渲染引擎和 Node.js 运行时,使得开发者可以使用 Web 技术创建原生桌面应用。1.2 为什么选择 Vue.js 和 Electron? Vue.js 是一个渐进式 JavaSc…...
Golang 应用的 Docker 部署方式介绍及使用详解
本文将介绍如何使用 Docker 部署一个基于 Go 语言的后台服务应用 godco,并介绍如何配置 MongoDB 数据库容器的连接,确保应用能够成功启动并连接到容器方式部署的mongoDB数据库。 前提条件 1.已安装 Docker/Podman 2.已安装 MongoDB 数据库容器ÿ…...
DeepSeek的提示词使用说明
一、DeepSeek概述 DeepSeek是一款基于先进推理技术的大型语言模型,能够根据用户提供的简洁提示词生成高质量、精准的内容。在实际应用中,DeepSeek不仅能够帮助用户完成各类文案撰写、报告分析、市场研究等工作,还能够生成结构化的内容&#…...
python小知识-typing注解你的程序
python小知识-typing注解你的程序 1. Typing的简介 typing 是 Python 的一个标准库,它提供了类型注解的支持,但并不会强制类型检查。类型注解在 Python 3.5 中引入,并在后续版本中得到了增强和扩展。typing 库允许开发者为变量、函数参数和…...
HTML<hgroup>标签
例子: 使用hgroup元素标记标题和段落是相关的: <hgroup> <h2>Norway</h2> <p>The land with the midnight sun.</p> </hgroup> 定义和用法: 标签<hgroup>用于包围标题和一个或多个<p&g…...
【已解决】黑马点评项目Redis版本替换过程的数据迁移
黑马点评项目Redis版本替换过程的数据迁移 【哭哭哭】附近商户中需要用到的GEO功能只在Redis 6.2以上版本生效 如果用的是老版本,美食/KTV的主页能正常返回,但无法显示内容 上次好不容易升到了5.0以上版本,现在又用不了了 Redis 6.2的windo…...
mybatis辅助配置
驼峰映射 sql里面定义字段通常是使用下划线定义 比如dept_id 而我们的后端属性通常就是驼峰命名 deptId 所以这两匹配进行自动赋值就比较麻烦 可以使用 select dept_id as deptId 来解决(起别名) 也可以用mybatis的辅助配置解决 第三种就是推荐的在spr…...
基于YOLO11的肺结节检测系统
基于YOLO11的肺结节检测系统 (价格90) LUNA16数据集 数据一共 1186张 按照8:1:1随机划分训练集(948张)、验证集(118张)与测试集(120张) 包含 nodule 肺结节 1种…...
C#面向对象(继承)
1.什么是继承 在 C# 编程语言中,继承是一个核心概念,它允许一个类(称为派生类)继承另一个类(称为基类)的成员,如方法、属性和其他成员。继承机制使得代码重用成为可能,简化了应用程…...
Qt事件处理:理解处理器、过滤器与事件系统
1. 事件 事件 是一个描述应用程序中、发生的某些事情的对象。 在 Qt 中,所有事件都继承自 QEvent ,并且每个事件都有特定的标识符,如:Qt::MouseButtonPress 代表鼠标按下事件。 每个事件对象包含该事件的所有相关信息ÿ…...





