答:先看键值实际大小、结构编码、TTL、重复数据和内存组成。缩短不必要的键,限制超大集合,给可重建数据设合理过期时间。
答:键到期会被过期机制处理,超过内存限制时可能触发淘汰。客户端也可删除键。实际释放对象内存是否延后,受命令及 lazyfree 等设置影响。
答:达到 maxmemory 后,服务器根据策略淘汰候选键,或在无法淘汰时拒绝会增加内存的写命令。能读到什么仍由现存数据和命令决定。
答:Redis 官方 FAQ 提到单实例最多可处理约 2³² 个键。实际容量通常先受内存、键值结构、负载、持久化与恢复时长约束。
答:Redis 7.4 有八种。noeviction,allkeys-lru、allkeys-lfu、allkeys-random,以及 volatile-lru、volatile-lfu、volatile-random、volatile-ttl。Redis 8.6 增加按最近修改时间淘汰的 allkeys-lrm 和 volatile-lrm。
答:集群把键映射到 16384 个槽,主节点拥有一部分槽。客户端按槽路由,副本接收主节点复制数据,符合条件时可接管槽。
答:常用 INFO 看实例指标,PING 测连通,DBSIZE 看当前库键数量,SLOWLOG GET 看慢命令记录,CLIENT LIST 看连接。配置操作和统计命令需要相应权限。
答:可能。默认异步复制时,主节点确认写入后还没传到可接管副本就故障,新主可能缺少这条记录。网络分区也可能出现短暂旧主写入窗口。
答:集群有 16384 个槽。槽是分配单位,因此全体有槽主节点数不能超过槽数。集群还可有副本,不能把槽数直接当全部节点上限。
答:Redis Cluster 只使用逻辑库 0,不支持用 SELECT 切换到其他库。不同业务可用键前缀和 ACL 管理,强隔离时用独立实例或集群。