redis.conf 参数详解,方便进行性能优化配置
以下是redis.conf中一些常见参数的详细说明:
-
daemonize:是否以后台进程运行,默认为no; pidfile:如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid;bind:绑定主机IP,默认值为127.0.0.1;port:监听端口,默认为6379;timeout:超时时间,默认为300(秒);loglevel:日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning;logfile:日志记录方式,默认值为stdout;databases:可用数据库数,默认值为16,默认数据库为0;save <seconds> <changes>:指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合;rdbcompression:存储至本地数据库时是否压缩数据,默认为yes;dbfilename:本地数据库文件名,默认值为dump.rdb;dir:本地数据库存放路径,默认值为./;slaveof <masterip> <masterport>:当本机为从服务时,设置主服务的IP及端口;masterauth <master-password>:当本机为从服务时,设置主服务的连接密码;requirepass:连接密码;maxclients:最大客户端连接数,默认不限制;maxmemory <bytes>:设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作;appendonly:是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面sava条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no;appendfilename:更新日志文件名,默认值为appendonly.aof;appendfsync:更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值);vm-enabled:是否使用虚拟内存,默认值为no;vm-swap-file:虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享;vm-max-memory:将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的,也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0;vm-page-size:设置swap文件中的page数量,由于页表是在放在内存中的,在磁盘上每8个pages将消耗1byte的内存;vm-pages:设置swap文件中的page数量,由于页表是在放在内存中的,在磁盘上每8个pages将消耗1byte的内存;vm-max-threads:设置访问swap文件的线程数,设置最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟,但是对数据完整性有很好的保证;glueoutputbuf:指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法;hash-max-zipmap-entries:hash-max-zipmap-value:指定是否激活重置哈希,默认为开启;activerehashing yes:指定是否启用虚拟内存机制,默认值为no。
除了之前提到的参数,Redis 的配置文件中还有以下一些常用参数:
-
tcp-backlog:TCP 监听的最大容纳数量,在高并发的环境下,需要把这个值调高以避免客户端连接缓慢的问题。 unixsocket:指定 Redis 监听的 Unix socket 路径,默认不启用。unixsocketperm:指定 Unix socket 文件的权限。timeout:指定在一个客户端空闲多少秒之后关闭连接(0 表示永不关闭)。tcp-keepalive:单位是秒,表示将周期性的使用 SO_KEEPALIVE 检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是 300 秒,如果设置为 0,则不会周期性的检测。supervised:可以通过 upstart 和 systemd 管理 Redis 守护进程。pidfile:配置 PID 文件路径,当 Redis 作为守护进程运行的时候,它会把 pid 默认写到指定文件里面。syslog-enabled:要想把日志记录到系统日志,就把它改成 yes,也可以可选择性的更新其他的 syslog 参数以达到你的要求。syslog-ident:设置系统日志的 ID。syslog-facility:指定系统日志设置,必须是 USER 或者是 LOCAL0-LOCAL7 之间的值。slave-serve-stale-data:当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:如果为 yes,slave 仍然会应答客户端请求,但返回的数据可能是过时;如果为 no,出去 INFO 和 SLAVOF 命令之外的任何请求都会返回一个错误 "SYNC with master in progress"。slave-read-only:你可以配置一个 slave 实体是否接受写入操作。io-threads:启用多线程。- tcp-backlog:确定 TCP 连接中已完成队列的长度,应小于 Linux 系统的/proc/sys/net/core/somaxconn 的值,默认为511。
- tcp-keepalive:指定 ACKs 的时间周期,单位为秒,值非 0 的情况表示将周期性的检测客户端是否可用,默认值为 0。
- lua-time-limit:设置 Lua 脚本的最大运行时间,单位为毫秒,默认值为 5000。
- notify-keyspace-events:事件通知,默认不启用。
- slave-serve-stale-data:当 slave 端在主从复制的过程中与 master 端断开了连接,此参数用于设置 slave 端的行为,是继续提供服务即使数据可能不是最新的,还是对请求返回一个错误信息,默认配置是继续提供服务。
- slave-read-only:自 Redis 2.6 版本开始,slave 端默认为只读。
- repl-disable-tcp-nodelay:是否启用 TCP_NODELAY,如果启用则会使用少量的 TCP 包和带宽去进行数据传输到 slave 端,当然速度会比较慢;如果不启用则传输速度比较快,但是会占用比较多的带宽。
- maxmemory-samples:设置 LRU 算法检查的样本数,默认值为 5。
这些参数可以根据具体的需求进行调整,以优化 Redis 的性能和行为。建议在修改配置文件之前,先了解每个参数的作用和影响,并根据实际情况进行合理的配置。同时,还可以参考 Redis 的官方文档获取更详细的信息。
其他参数部分1:
1. cluster-enabled:是否启用 Redis 集群模式,默认为 no。
2. cluster-config-file:指定集群配置文件的名称,默认为 nodes.conf。
3. cluster-node-timeout:集群节点超时时间,默认为 15000 毫秒。
4. slowlog-log-slower-than:设定慢查询日志的执行时间阈值(微秒),超过该阈值的命令将被记录到慢查询日志中。
5. slowlog-max-len:慢查询日志的最大长度。
6. hz:Redis 内部的事件处理频率,默认为 10 。
7. tcp-backlog:TCP 连接的等待队列长度。
8. notify-keyspace-events:配置键空间通知事件。
9. client-output-buffer-limit:对不同类型的客户端设置输出缓冲区的限制。
10. slave-serve-stale-data:从服务器在与主服务器失去连接时,是否响应客户端请求,默认为 yes。
11. slave-read-only:从服务器是否为只读模式,默认为 yes。
12. repl-disable-tcp-nodelay:主从复制时是否禁用 TCP_NODELAY 选项,默认为 no。
其他参数部分2:
1. tcp-keepalive:设置 TCP 连接的保活机制,指定空闲多久后发送保活探测包。
2. lua-time-limit:执行 Lua 脚本的最大运行时间,以毫秒为单位。
3. maxmemory-samples:在计算内存使用和选择淘汰键时的采样数量。
4. stop-writes-on-bgsave-error:当后台保存出错时是否禁止写入操作,默认为 yes。
5. cluster-require-full-coverage:在集群模式下,是否要求所有的键空间都被覆盖,默认为 yes。
6. aof-load-truncated:当加载 AOF 文件发现文件末尾不完整时的处理方式,默认为 yes(继续加载)。
7. cluster-migration-barrier:集群迁移的最小主节点数量阈值。
8. lazyfree-lazy-eviction:是否惰性删除达到最大内存限制时的键,默认为 no。
9. lazyfree-lazy-expire:是否惰性删除过期的键,默认为 no。
10. lazyfree-lazy-server-del:是否惰性删除服务器端的一些命令操作,如 FLUSHALL 、 FLUSHDB 等,默认为 no。
1. activedefrag:是否启用主动碎片整理,默认为 no。
2. maxmemory-policy:当内存达到上限时的淘汰策略,除了前面提到的常见策略,还包括 volatile-ttl(淘汰即将过期的键)等。
3. cluster-slave-validity-factor:从节点与主节点失联后,判定从节点失效的时间放大倍数。
4. repl-ping-slave-period:从节点向主节点发送 ping 的时间间隔。
5. cluster-replica-no-failover:是否禁止从节点在主节点故障时进行故障转移,默认为 no。
6. cluster-replica-validity-factor:从节点与主节点的复制偏移量检查的放大倍数。
7. hash-max-ziplist-entries:哈希表在使用压缩列表时,键值对的最大数量。
8. hash-max-ziplist-value:哈希表在使用压缩列表时,值的最大长度。
9. list-max-ziplist-size:列表在使用压缩列表时的最大长度。
10. zset-max-ziplist-entries:有序集合在使用压缩列表时,元素的最大数量。
11. zset-max-ziplist-value:有序集合在使用压缩列表时,元素成员的最大长度。
12. pubsub-channel-size:发布订阅频道的最大订阅者数量。
13. rdbchecksum:在生成 RDB 快照文件时是否进行校验和计算,默认为 yes。
其他参数部分3:
1. cluster-announce-ip:在集群环境中,节点用于通告给其他节点的 IP 地址。
2. cluster-announce-port:在集群环境中,节点用于通告给其他节点的端口。
3. cluster-announce-bus-port:集群内部通信总线使用的端口。
4. cluster-node-timeout-factor:用于计算节点超时时间的系数。
5. rename-command:重命名某些危险命令,以增强安全性。
6. hz:决定 Redis 内部事件的处理频率。
7. latency-monitor-threshold:设置延迟监控的阈值。
8. repl-backlog-size:复制积压缓冲区的大小。
9. min-slaves-to-write:指定在执行写操作时所需的最少健康从节点数量。
10. min-slaves-max-lag:从节点与主节点的最大延迟时间,超过此值的从节点被视为不健康。
其他参数部分4:
1. cluster-replica-validity-factor:用于调整从节点与主节点复制偏移量检查的容错系数。
2. cluster-allow-reads-when-down:控制在集群不可用时是否允许读取操作,默认为 no。
3. cluster-migration-barrier:定义触发迁移操作所需的主节点数量阈值。
4. cluster-announce-tcp-ports:在集群环境中,通告 TCP 端口信息。
5. client-query-buffer-limit:限制客户端查询缓冲区的大小。
6. proto-max-bulk-len:协议中批量操作允许的最大长度。
7. max-appendonly-import-time:AOF 重写导入数据的最大允许时间。
8. dynamic-hz:根据负载动态调整 hz 值。
9. jemalloc-bg-thread:启用或禁用 jemalloc 的后台线程。
10. jemalloc-mib-heap-limit:设置 jemalloc 堆内存的限制大小(以 MiB 为单位)。
其他参数部分5:
1. cluster-announce-hostname:在集群环境中,节点用于通告的主机名。
2. activedefrag-threshold-lower:触发主动碎片整理的内存碎片下限阈值。
3. activedefrag-threshold-upper:触发主动碎片整理的内存碎片上限阈值。
4. activedefrag-cycle-min:主动碎片整理的最小运行时间。
5. activedefrag-cycle-max:主动碎片整理的最大运行时间。
6. maxmemory-eviction-tenacity:控制内存淘汰策略的持久性。
7. rdb-del-sync-files:在执行 RDB 保存时,是否同步删除旧的 RDB 文件,默认为 no。
8. repl-diskless-sync-delay:在无盘复制时的延迟时间。
9. cluster-password:集群的密码设置。
10. slave-priority:从节点的优先级,用于主从切换。
有兴趣的同学可以自己深入研究一下源码,里面有具体配置说明
相关文章:
redis.conf 参数详解,方便进行性能优化配置
以下是redis.conf中一些常见参数的详细说明: daemonize:是否以后台进程运行,默认为no; pidfile:如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid;bind:绑定主…...
微信小程序登录流程详情及Java代码
一、流程图 说明: 调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。 调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。 获取手机号,调用wx.getPhoneNumber() ,获取加密…...
c++qt合并两张灰度图像
需求:将两张尺寸相同的灰度图像进行合并,合并后的图像,每个像素点灰度值为两张原图对应像素点灰度值之和。若超过255,则最大为255。 方法一: 将图像读取为cv::Mat,再调用opencv的cv::add方法,进…...
Uniapp通过年月日时间转变星期格式
效果图 参靠微信小程序:日常记一记 代码 <view v-for"(d,index) in dataList" >{{getWeekDay(d.ctime)}} //时间格式:2024-06-21</view> js export default {data(){return {dataList:[],//时间数组}},onLoad() {this.loadList…...
如何编写和执行高效的测试计划
如何编写和执行高效的测试计划 1. 测试计划概述2. 测试阶段详解3. 测试计划模板4. 关键注意事项总结 1. 测试计划概述 测试计划是指导整个测试过程的重要文档,其中包含了测试策略、资源分配、进度安排以及风险评估等内容。 一个完善的测试计划应当包括以下几个主要…...
【MySQL连接器(Python)指南】03-MySQL连接器(Python)安装
文章目录 前言1. 从二进制发行版中安装连接器1.1 使用pip安装MySQL连接器1.2 使用MySQL Yum Repository安装1.3 使用Debian软件包安装连接器2. 从源代码发行版安装连接器2.1 在Windows上源码安装2.2 在类Unix系统上源码安装3. 验证连接器安装总结前言 MySQL连接器(Python),用于…...
Spring Boot组件化与参数校验
Spring Boot组件化与参数校验 Spring Boot版本选择 2.3.x版本 2.6.x版本 Spring Boot核心思想 约定大于配置,简化繁琐的配置 Spring Boot自动配置原理 SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,Spr…...
实现可扩展的电商返利平台:技术选型与挑战
实现可扩展的电商返利平台:技术选型与挑战 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在当今数字化和电商兴盛的时代,返利平台成为…...
从0开始C++(三):构造函数与析构函数详解
目录 构造函数 构造函数的基本使用 构造函数也支持函数重载 构造函数也支持函数参数默认值 构造初始化列表 拷贝构造函数 浅拷贝和深拷贝 析构函数 总结 练习一下ヽ( ̄▽ ̄)ノ 构造函数 构造函数的基本使用 构造函数是一种特殊的成…...
行车记录仪文件夹“0字节”现象解析与恢复策略
一、行车记录仪文件夹“0字节”现象描述 行车记录仪作为现代驾驶中的必备设备,其储存的视频数据对于事故记录和取证至关重要。然而,有时车主们可能会遇到这样一个问题:行车记录仪的某个文件夹内的文件突然变成了0字节大小,无法正…...
呼叫中心系统的功能都有哪些?okcc呼叫中心pscc磐石云呼叫系统部署
当前电话营销普及到各行各业,方便快捷成了大部分企业在宣传自己公司的产品时必用的一种营销方式,但是电话营销在管理上也存在许多问题。例如:销售员与客户沟通前,未能详细了解客户的资料;多名销售员重复拨打同一个客户…...
2024.06.08校招 实习 内推 面经
绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、提前批 | 中电锦江2025届提前批招聘 提前批 | 中电锦江2025届提前批招聘 2、实习 | 国电电力2025届暑期实习生计划启动! 实习 | 国电电力2025届暑期实习生计划启动&#x…...
Polyplus——转染试剂专业供应商
PolyPlus-transfection是一家专业的转染试剂研发和生产的生物技术公司,拥有20年的的转染试剂研发经验,通过创新的核酸转染解决方案支持基因和细胞治疗、生物制剂制造和生命科学研究。目前已经通过了ISO 9001: 2000质量体系认证,已经开发了一系…...
微服务架构-线上治理、线下治理与架构演进
目录 一、线上治理 1.1 概述 1.2 线上预案体系 1.2.1 概述 1.2.2 变更引起的故障 1.2.3 流量和容量变化引起的故障 1.2.4 依赖故障 1.2.5 机房、网络等硬件和环境故障 1.2.6 其他 1.2.7 故障的场景化 1.3 基于Metric的预案自动触发 1.4 治理参数动态调整 1.4.1 举例…...
网络安全:什么是SQL注入
文章目录 网络安全:什么是SQL注入引言SQL注入简介工作原理示例代码 攻击类型为什么SQL注入危险结语 网络安全:什么是SQL注入 引言 在数字化时代,数据安全成为了企业和个人最关心的问题之一。SQL注入(SQL Injection)是…...
从零开始精通Onvif之网络配置
💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 概述 网络配置是Onvif规范中的重要组成部分,允许用户通过网络远程配置和管理设备的网络设置,比如:DHCP、IP地…...
在 macOS 上使用 Homebrew 安装和配置 Python 及 Tk 库
在 macOS 上,系统自带的 /usr/bin/python3 版本较旧,且直接升级系统自带的 Python 版本可能会影响系统稳定性。因此,推荐使用 Homebrew 来安装和管理 Python 及其相关库。本文将详细介绍如何通过 Homebrew 安装和配置 Python 3 及 Tk 库&…...
【机器学习 复习】第2章 线性回归及最大熵模型
一、概念 1.回归就是用一条曲线对数据点进行拟合,该曲线称为最佳拟合曲线,这个拟合过程称为回归。 2.一个自变量 叫 一元线性回归,大于一个自变量 叫 多元线性回归。 (1)多元回归:两个x,一个…...
关于椭圆的方程(有Python画的动图)
关于椭圆的方程(有Python画的动图) flyfish 几何定义 椭圆是平面上所有到两个固定点(焦点)的距离之和为常数的点的集合。这两个固定点叫做焦点。 解析几何描述 设椭圆的两个焦点为 F 1 F_1 F1 和 F 2 F_2 F2ÿ…...
selenium常见难点解决方案
勾选框勾选问题 勾选框代码逻辑实现过程: 第一步:首先找到勾选框的元素; 第二步:检查它是否已经被勾选。如果已经勾选,则进行取消勾选操作;如果未勾选,则进行点击勾选操作; 以下是一…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
