# Redis 配置文件
# 官方文档: https://redis.io/topics/config

################################## 常规设置 #####################################

# 绑定到网络接口。默认情况下，Redis 仅在本地接口上监听。
# 为了安全起见，只允许本地访问。需要远程访问的情况下，添加其他IP地址或使用0.0.0.0绑定所有接口。
# bind 127.0.0.1
# 指定Redis实例监听的端口号。默认端口是6379。
# port 6379
# 限制外部连接只允许通过特定的IP进行。默认为空，表示不限制。
#bind 127.0.0.1 192.168.1.100
# 设置后台运行模式。若启用，请将此选项设置为 yes。
# daemonize yes
################################## 安全性 #####################################
# 设置Redis密码，必须使用客户端认证机制提供此密码才能连接。
requirepass Letusdoit000

# 设置客户端闲置多长时间后关闭连接（秒）。默认值为0，表示不关闭连接。
# timeout 0

################################## 日志记录 ####################################
# 日志级别。可选值：debug、verbose、notice、warning。生产环境建议设置为 notice 或 warning。
loglevel debug

# 指定日志文件存放的位置。如果设置为 stdout，则日志输出到标准输出。
# logfile redis-server.log
# logfile /var/log/redis/redis-server.log

################################## 数据库 ######################################
# Redis 默认包含16个数据库（编号从0到15），可以通过 SELECT <db> 来选择数据库。
databases 16

################################## 快照 #######################################

# 保存数据到RDB文件配置。格式为 <seconds> <changes>：
# 表示在 <seconds> 秒内发生 <changes> 次修改时触发保存。
save 900 1
save 300 10
save 60 10000

# RDB 文件的名称和存放路径。
dbfilename dump.rdb
# dir /var/lib/redis

################################## AOF持久化 ##################################

# 是否启用AOF（Append Only File）持久化机制。建议开启。
appendonly yes

# 设置AOF文件名。
appendfilename "appendonly.aof"

# AOF 写入策略：always, everysec, no。其中 everysec 是推荐的折衷方案。
appendfsync everysec

# 重写日志文件大小比率，当AOF文件大小达到上一次重写后的文件大小的指定倍数时，触发AOF重写操作。
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

################################## 内存管理 ####################################

# 设置Redis使用的最大内存量。当达到此值时，会根据maxmemory-policy进行淘汰策略。
maxmemory 2gb

# 超过 maxmemory 时的内存淘汰策略。可选值：
# noeviction：当内存不足以容纳新写入数据时，新写入操作会报错。
# allkeys-lru：移除最少使用的键来腾出空间，用于所有键。
# volatile-lru：移除最少使用的键来腾出空间，只对设置了过期时间的键生效。
# allkeys-random：随机移除一些键来腾出空间，用于所有键。
# volatile-random：随机移除一些键来腾出空间，只对设置了过期时间的键生效。
# volatile-ttl：移除即将过期的键。
maxmemory-policy allkeys-lru

################################## 高可用 #####################################

# 主从复制相关配置：
# slaveof <masterip> <masterport>
# masterauth <master-password>
# 启用Redis Sentinel以实现高可用性。Sentinel配置需单独文件定义。
################################## 高级功能 ####################################
# Lua脚本执行时间限制，以防止长时间运行脚本。单位为毫秒。
lua-time-limit 5000

# 集群相关配置：
# cluster-enabled yes
# cluster-config-file nodes.conf
# cluster-node-timeout 15000

# 开启自动故障转移功能
# cluster-require-full-coverage yes
# 线程池数量配置。可以提高并发性能，但需要根据实际情况调整。
# io-threads-do-reads no
# io-threads 4