Redis(配置文件属性解析)

一、tcp-backlog深度解析


tcp-backlog是一个TCP连接的队列,主要用于解决高并发场景下客户端慢连接问题。配置文件中的"511"就是队列的长度,对联与TCP的三次握手有关,不同的linux内核,backlog队列中存放的元素(客户端连接)类型是不同的。

linux内核2.2版本之前:队列中存放的是已完成第一次握手的所有客户端连接。

linux内核2.2版本之后:TCP系统中维护了两个队列。一个存放未完成三次握手的队列,一个存放已完成三次握手的队列。

TCP中的backlog队列的长度由linux内核参数somaxcon(下图中的查看结果为128)和redis配置文件共同决定,取它们中的最小值。

生产环境下(特别是高并发场景下)backlog的值要高一些,否则会影响系统性能。

修改backlog:

让linux内核重新加载配置文件内容(也可以重启虚拟机,但生产环境不适用):

powershell 复制代码
sysctl -p

二、general模块详解

2.1 pidfile(记录redis服务pid的文件)

还是查看配置文件:

启动redis服务可以看到生成对应的pidfile:

查看pidfile:

查看pidfile的内容:

如果没有配置pid文件,不同的启动方式,pid文件的产生效果是不同的。采用守护进程方式启动(后台启动,daemonize为yes),pid文件为/run/redis_6739.pid。采用前台启动方式(daemonize为no),不生成pid文件。

2.2 loglevel日志级别与logfile日志文件

2.2.1 loglevel

有四个级别(信息量越来越少):

debug、verbose、notice、warning。

2.2.2 logfile

若是设为""且daemonize为no则打印到控制台(标准输出);若是设为""且daemonize为yes则打印到/dev/null(文件类型为c即设备)。

也可以修改为特定目录:

重启服务:

可以看到对应目录下生成了日志文件:

三、maxclients属性深度解析

maxclients用于设置redis可并发处理的客户端连接数量,默认值为10000.如果达到最大连接数,则会拒绝再来的新连接,并返回一个异常信息。

也与Linux里的配置信息有关(不能超过linux系统支持的可打开的文件描述符的最大数量阈值,可通过/etc/security/limit.conf修改),这里就不多解释了。

四、memory management

4.1 maxmemory

将内存使用限制为指定的字节数(防止redis占用全部内存)。当redis进程达到内存上限事,根据指定的逐出策略maxmemory-policy尝试删除符合条件的key。如果不能按照逐出策略移除key,则会给写操作命令返回error。

4.2 maxmemory-policy

逐出策略

4.3 maxmemory-sample

4.4 maxmemory-eviction-tenacity

移除容忍度,选出要移除的key的延迟时间。

五、io-threads多线程配置

默认情况下关闭,若机器有多个内核可以开启。

线程数量需要设置成小于内核数量(至少减1)。

相关推荐
白衣鸽子1 小时前
数据库高可用设计的灵魂抉择:CAP权衡
数据库·后端
DokiDoki之父2 小时前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis
阿维的博客日记3 小时前
Redis学习笔记-QuickList
redis·笔记·学习
TDengine (老段)3 小时前
TDengine 数据函数 LN 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
机灵猫3 小时前
Redis 在订单系统中的实战应用:防重、限流与库存扣减
数据库·redis·缓存
木易2.03 小时前
从零构建RAG知识库管理系统(二)
数据库·oracle
程序新视界3 小时前
什么是MySQL JOIN查询的驱动表和被驱动表?
数据库·后端·mysql
lingggggaaaa4 小时前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
小光学长4 小时前
基于Vue的保护动物信息管理系统r7zl6b88 (程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
一匹电信狗4 小时前
【MySQL】数据库的相关操作
linux·运维·服务器·数据库·mysql·ubuntu·小程序