当前位置: 首页 > news >正文

redis-保姆级配置详解

################################## NETWORK #######################
bind 127.0.0.1 172.88.19.1    #监听ip,多个ip用空格分隔
protected-mode yes #启用时,如果 Redis 没有绑定特定的 IP 地址(即通过 bind 参数指定),并且没有设置密码(通过 requirepass 参数设置),Redis 将只允许来自本地回环接口(127.0.0.1 和 ::1)的连接。

port 6379  #端口
tcp-backlog 511  #
timeout 0 #客户端(redis-cli)闲置多长时间后关闭连接
tcp-keepalive 300

################################# GENERAL ###################
daemonize yes
pidfile /var/run/redis_6379.pid  #redis进程的PID文件存放位置
loglevel notice  #日志级别 debug\verbose\notice\warning
logfile "/opt/redis-log/redis-6379.log"
databases 16  #数据库的数量
always-show-logo no 
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
locale-collate ""

################################ SNAPSHOTTING  ################
save 3600 1  #rdb配置项,在 3600 秒(1 小时) 内,若至少发生 1 次写操作,则生成 RDB 快照。无持久化需求,可设置为save “”
save 300 100 #在 300 秒(5 分钟) 内,若至少发生 100 次写操作,则生成 RDB 快照。
save 60 10000 #在 60 秒(1 分钟) 内,若至少发生 10000 次写操作,则生成 RDB 快照。
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump-6379.rdb  #rdb持久化存储文件名称
rdb-del-sync-files no 
dir /opt/redis-data-6379  #指定存放位置

################################# REPLICATION #################
replicaof 172.88.19.102 6379 #Slave01 节点Redis服务连接Master节点Redis服务的IP地址和端口,在 Redis服务启动时会自动从Master节点进行数据同步。
masterauth rezLxxxR1wT8     #Slave节点Redis服务连接Master节点Redis服务的密码,master可不设置
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 5
repl-diskless-sync-max-replicas 0
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100

################################## SECURITY ####################
acllog-max-len 128
requirepass rezL2pAqR1wT8  #设置客户端连接Redis服务的连接密码


################################### CLIENTS #####################
maxclients 10000

############################## MEMORY MANAGEMENT ###################

maxmemory 838860800   #实例最多内存(字节)
maxmemory-policy noeviction  #当 Redis 使用的内存达到或超过 maxmemory 限制时,Redis 会根据配置的内存淘汰策略来决定如何处理新的写入请求。Redis 支持以下几种内存淘汰策略:
noeviction:默认策略,当内存达到或超过 maxmemory 限制时,Redis 会拒绝新的写入请求,并返回错误信息。
volatile-lru:从设置了过期时间的键中选择最近最少使用的键进行删除,直到内存使用量低于 maxmemory 限制。
allkeys-lru:从所有键中选择最近最少使用的键进行删除,直到内存使用量低于 maxmemory 限制。
volatile-random:从设置了过期时间的键中随机选择键进行删除,直到内存使用量低于 maxmemory 限制。
allkeys-random:从所有键中随机选择键进行删除,直到内存使用量低于 maxmemory 限制。
volatile-ttl:从设置了过期时间的键中选择剩余生存时间最短的键进行删除,直到内存使用量低于 maxmemory 限制。

maxmemory-samples 5
maxmemory-eviction-tenacity 10
replica-ignore-maxmemory yes
active-expire-effort 1

############################# LAZY FREEING ################
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no

################################ THREADED I/O ####################
io-threads 1  #用于网络io处理的线程数,建议设置为 CPU 核心数的 50%~75%
io-threads-do-reads no #是否启用 I/O 线程处理读操作(接收客户端请求)。QPS < 5 万且无大键,cpu核数较少时,no
############################ KERNEL OOM CONTROL ###################
oom-score-adj no
oom-score-adj-values 0 200 800

#################### KERNEL transparent hugepage CONTROL ############
disable-thp yes

############################## APPEND ONLY MODE ####################
appendonly no  #关闭aof记录 (有rdb ,当然也可以并行)
appendfilename "appendonly.aof"  #日志文件名, aof开启才会生效
appenddirname "appendonlydir"
appendfsync everysec #指定更新日志的条件,有三个可选参数 : no表示由操作系统进行数据缓存同步到磁盘(速度快);always表示每次更新操作后手动调用fsync()将数据写到磁盘(速度慢但安全);everysec表示每秒同步一次(速度与安全性折中,默认值);
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
aof-timestamp-enabled no

################################ SHUTDOWN ####################
shutdown-timeout 10
shutdown-on-sigint default
shutdown-on-sigterm default

################################## SLOW LOG ###################
slowlog-log-slower-than 10000
slowlog-max-len 128

################################ LATENCY MONITOR ##############
latency-monitor-threshold 0 #设置延迟监控的阈值(毫秒),任何执行时间超过该值的操作都会被记录

################################ LATENCY TRACKING ###############
latency-tracking-info-percentiles 50 99 99.9  #设置延迟统计时计算的百分位数值,用于展示不同比例请求的延迟情况。 三个水位数

############################# EVENT NOTIFICATION ################
notify-keyspace-events ""

############################### ADVANCED CONFIG ##############
hash-max-listpack-entries 512  # 当 Hash 字段数 ≤512 且值长度 ≤64 字节时,使用紧凑编码
hash-max-listpack-value 64 # 单个值的最大长度限制(字节)

list-max-listpack-size -2  # 每个 listpack 节点最大占用内存(-2 表示 8KB)
list-compress-depth 0 # 列表两端不压缩的节点数(0 表示不压缩)

set-max-intset-entries 512 # 当 Set 元素全为整数且数量 ≤512 时,使用 intset 编码
set-max-listpack-entries 128  # 当 Set 转为 listpack 时的元素数阈值
set-max-listpack-value 64  # 单个元素的最大长度限制(字节)

zset-max-listpack-entries 128 # 当 ZSet 元素数 ≤128 且值长度 ≤64 字节时,使用 listpack
zset-max-listpack-value 64  # 单个值的最大长度限制(字节)

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096
stream-node-max-entries 100

activerehashing yes

client-output-buffer-limit normal 0 0 0  #普通客户端(非复制从节点、非发布订阅客户端)的输出缓冲区限制:
hard limit:缓冲区达到此大小时立即断开客户端连接。
soft limit:缓冲区连续超过此大小达 soft seconds 秒时断开客户端连接。
0 值:表示禁用该限制 (默认禁止)。
client-output-buffer-limit replica 256mb 64mb 60 #设置复制从节点的输出缓冲区限制。从节点缓冲区超过 256MB 时立即断开。或连续 60 秒 超过 64MB 时断开。
client-output-buffer-limit pubsub 32mb 8mb 60  #设置发布订阅客户端的输出缓冲区限制。发布订阅客户端缓冲区超过 32MB 时立即断开。或连续 60 秒 超过 8MB 时断开。

client-query-buffer-limit 1gb  #设置客户端查询缓冲区的最大内存限制。
proto-max-bulk-len 512mb #设置单个命令参数(如 SET 的值、RPUSH 的元素)的最大长度。

hz 10

dynamic-hz yes
aof-rewrite-incremental-fsync yes #启用 AOF 重写期间的增量 fsync,避免单次 fsync 过大导致的阻塞。AOF 重写原理:
Redis 生成新的 AOF 文件时,将内存数据转换为写命令。
若新文件过大,单次 fsync(将数据刷盘)可能阻塞主线程。
增量 fsync:
将大文件分成多个块,每次 fsync 固定大小(默认 32MB)。
rdb-save-incremental-fsync yes #启用 RDB 生成期间的增量 fsync,避免单次 fsync 过大导致的阻塞。
RDB 持久化原理:
Redis 生成 RDB 快照时,将内存数据序列化到磁盘。
若 RDB 文件过大,单次 fsync 可能导致长时间阻塞。
增量 fsync:
将 RDB 文件分成多个块,每次 fsync 固定大小(默认 32MB)。


########################### ACTIVE DEFRAGMENTATION ##############
activedefrag no  #禁用 Redis 的主动内存碎片整理功能,可通过执行手动碎片整理。生产环境建议开启,但会增加cpu使用率
active-defrag-ignore-bytes 100mb  
active-defrag-threshold-lower 10
active-defrag-threshold-upper 100
active-defrag-cycle-min 1
active-defrag-cycle-max 25
active-defrag-max-scan-fields 1000

jemalloc-bg-thread yes  #启用 jemalloc 后台线程

 -------------------------------------------------------------------------------------------

                         深耕运维行业多年,擅长运维体系建设,方案落地。欢迎交流!

                                                    V: ywjw996

                                                    《 运维经纬 》

http://www.lryc.cn/news/622189.html

相关文章:

  • 机器学习案例——《红楼梦》文本分析与关键词提取
  • 103、【OS】【Nuttx】【周边】文档构建渲染:Sphinx 配置文件
  • RabbitMQ核心架构与应用
  • Nginx性能优化与安全配置:打造高性能Web服务器
  • 模型驱动与分布式建模:技术深度与实战落地指南
  • 【慕伏白】CTFHub 技能树学习笔记 -- Web 前置技能之HTTP协议
  • 【Docker】搭建一个高性能的分布式对象存储服务 - MinIO
  • LeetCode热题100--146.LRU缓存--中等
  • 附046.集群管理-EFK日志解决方案-Filebeat
  • 20250815在荣品RD-RK3588-MID开发板的Android13下点卡迪的7寸LCD屏
  • 商城开发中,有哪些需要关注的网络安全问题
  • Android按电源键关机弹窗的删除
  • 紫金桥RealSCADA:国产工业大脑,智造安全基石
  • 金融业务安全增强方案:国密SM4/SM3加密+硬件加密机HSM+动态密钥管理+ShardingSphere加密
  • Redisson分布式锁实战指南:原理、用法与项目案例
  • 第五天~提取Arxml中描述信息New_CanCluster--Expert
  • 神经网络 小土堆pytorch记录
  • 关系型数据库核心组件:视图、函数与存储引擎详解
  • Vue3从入门到精通: 4.4 复杂状态管理模式与架构设计
  • Redis 05 Redis cluster
  • 《Cocos游戏开发入门一本通》第一章
  • 後端開發Python篇
  • windows下hashcat使用gpu破解execl打开密码
  • C++ 优选算法 力扣 1004. 最大连续1的个数 II 滑动窗口 (同向双指针)优化 每日一题 详细题解
  • C#WPF实战出真汁06--【系统设置】--餐桌类型设置
  • Transformer实战(4)——从零开始构建Transformer
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘fairseq’问题
  • AI优质信息源汇总:含X账号,Newsletter,播客,App
  • [优选算法专题二滑动窗口——长度最小的子数组]
  • 杭州网站建设,外贸独立站搭建攻略分享