由于这个是redis上的软件。这篇文章,主题就在于key的配置。我们知道,redis存储数据都是一颗一颗的kv,kv、。只不过v有不同的数据类型的结构。我们这里针对单机redis去进行配置。
1.redis的key需要配置的概念有哪些
- Redis Key 需要配置的核心概念
1.1 持久化机制(Persistence)
控制数据如何从内存保存到磁盘,保证数据不丢失:
RDB(快照):在指定时间间隔内生成数据集的时间点快照
AOF(追加文件):记录每个写操作,服务器重启时重新执行这些命令来恢复数据
1.2 Key 过期机制(Expiration)
设置 key 的生存时间:
可以为每个 key 设置过期时间(TTL)
过期时间可以是秒级或毫秒级
相关命令:EXPIRE、EXPIREAT、TTL、PTTL
1.3 Key 过期删除策略(Expiration Policy)
Redis 如何删除已过期的 key:
惰性删除(Lazy):访问 key 时检查是否过期
定期删除(Active):定时随机抽取一些 key 检查并删除过期的
1.4 内存淘汰策略(Eviction Policy)
当内存不足时,Redis 如何选择删除哪些 key:
noeviction:不淘汰,写入返回错误
allkeys-lru:从所有 key 中使用 LRU 算法淘汰
allkeys-lfu:从所有 key 中使用 LFU 算法淘汰
volatile-lru:从设置了过期时间的 key 中使用 LRU 淘汰
volatile-lfu:从设置了过期时间的 key 中使用 LFU 淘汰
allkeys-random:从所有 key 中随机淘汰
volatile-random:从设置了过期时间的 key 中随机淘汰
volatile-ttl:优先淘汰剩余 TTL 最短的 key
2.redis去哪里配置这些概念
2.1 redis.conf 配置文件
这是主要的配置方式,适合永久性配置:
持久化配置:
conf# RDB 配置
save 900 1 # 900秒内至少1个key变化就保存
save 300 10 # 300秒内至少10个key变化就保存
save 60 10000 # 60秒内至少10000个key变化就保存
dbfilename dump.rdb # RDB文件名
dir ./ # 持久化文件保存目录
AOF 配置
appendonly yes # 开启AOF
appendfilename “appendonly.aof” # AOF文件名
appendfsync everysec # 同步策略:always/everysec/no
过期删除策略配置:
conf# 定期删除的频率(Hz)
hz 10
每次定期删除任务的最大执行时长(毫秒)
这影响过期key的删除速度
activerehashing yes
内存淘汰策略配置:
conf# 最大内存限制
maxmemory 2gb
内存淘汰策略
maxmemory-policy allkeys-lru
LRU/LFU 算法的样本数量
maxmemory-samples 5
2.2 CONFIG 命令动态配置
适合临时调整,无需重启 Redis:
bash# 查看当前配置
CONFIG GET maxmemory-policy
设置配置(重启后失效)
CONFIG SET maxmemory-policy allkeys-lfu
CONFIG SET maxmemory 4gb
将当前配置写入 redis.conf(持久化配置)
CONFIG REWRITE
2.3 启动参数
在启动 Redis 时通过命令行参数指定:
bashredis-server --maxmemory 2gb --maxmemory-policy allkeys-lru
2.4 应用层面的配置
通过客户端命令为单个 key 设置过期时间:
bashSET mykey “value”
EXPIRE mykey 3600 # 设置3600秒后过期
SETEX mykey 3600 “value” # 设置值的同时设置过期时间
3. 配置建议
单机 Redis 的典型配置:
conf# 内存管理
maxmemory 2gb
maxmemory-policy allkeys-lru
maxmemory-samples 5
持久化(根据需求选择)
方案1:只用RDB(性能好,但可能丢失数据)
save 900 1
save 300 10
save 60 10000
方案2:RDB + AOF(数据更安全)
save 900 1
appendonly yes
appendfsync everysec
过期处理
hz 10
其他
dir /var/lib/redis/
dbfilename dump.rdb
1570

被折叠的 条评论
为什么被折叠?



