-
bgsave不阻塞Redis主线程,因其fork后由子进程独立完成RDB生成,主线程立即恢复服务;卡顿仅发生在fork阶段,大内存实例页表复制开销显著。
-
Bitmap签到本质是将日期转为从基准日开始的天数差作为offset,用SETBIT操作位;需统一UTC时区、避免手算闰年、单用户单key(如sign:uid:12345)、按月分key更实用,查连续签到须结合日期范围校验offset。
-
大key在Redis主从同步中会触发复制断连,表现为从库state由online突变为offline、日志反复出现Connectionwithmasterlost和Resyncingfrommaster,根源是RDB/AOF传输超时或内存溢出。
-
Redis数据丢失后首先确认是否开启持久化,90%情况实为未启用;需用redis-cliconfigget验证运行时AOF/RDB状态,检查appendfsync模式及AOF文件完整性。
-
cluster-config-file由Redis集群节点在运行时自动写入,仅在槽分配完成、拓扑变化或重启恢复时更新,用于本地状态持久化而非手动配置。
-
缓存穿透本质是无效key频繁击穿至DB,需用BloomFilter在Redis层预检;其误判可控、内存极小,支持高效存在性判断;Redisson中应使用RBloomFilter并正确初始化,注意冷启动、误判率调优及数据一致性问题。
-
对Redis配置文件进行加密保护是必要的,因为配置文件包含敏感信息,泄露可能导致严重安全问题。具体方法包括:1.使用openssl工具加密文件,如“opensslenc-aes-256-cbc-salt-inredis.conf-outredis.conf.enc”。2.将加密文件存储在受保护目录,并将解密密码存储在环境变量或密钥管理系统中。3.利用Redis5.0及以上版本的动态配置功能,在需要时解密和加载配置文件,如“opensslenc-d-aes-256-cbc-inredis.conf.enc-
-
redis-cli--hotkeys是基于LFU采样的轻量热Key发现工具,需启用allkeys-lfu/volatile-lfu策略,返回最多32个相对高频key,frequency为归一化值,非实时精确计数,须结合objectfreq、monitor等交叉验证。
-
网卡PPS打满是吞吐量上不去的常见原因,尤其在小key/value场景下,单请求虽仅60–100字节却生成独立TCP包,易使网卡达到硬件上限。
-
@Cacheable默认不设过期时间,若统一配置TTL则所有key同步过期易引发雪崩;需通过RedisTemplate手动写入并添加随机偏移(如10分钟±60秒)来缓解。
-
应通过aof_rewrite_in_progress、aof_pending_rewrite、aof_last_bgrewrite_status三字段组合判断AOF重写是否真正完成:前两者为0且后者为ok才表示成功;仅凭aof_last_rewrite_time_sec或单个字段易误判。
-
RedisRDB不支持并行拉取切片,因其为单文件顺序写入二进制快照,无分片格式与元数据索引;并行只能在实例粒度实现,即多master同时BGSAVE。
-
Redis主从读写分离需客户端显式控制,服务端仅同步数据;可通过API探测节点角色、配置双连接池或使用Lettuce的ReadFrom.SLAVE_PREFERRED实现路由,同时须校验从节点只读模式、健康状态与复制延迟。
-
必须配合日期动态生成key,因Bitmap无时间维度,共用key会丢失日期信息且导致单key膨胀、RDB/AOF暴增、主从延迟;用户ID须映射为非负整数offset,避免直接强转;BITCOUNT偏高多因key未清理或offset错位;5000万DAU下Bitmap体积约6.25MB,但需防ID稀疏浪费内存。
-
INFOkeyspace无法反映淘汰情况,因其仅统计存活key数量,不区分已过期未删除或已被淘汰的key,且不记录evicted_keys等关键淘汰指标。