Redis
已收录文章:35篇
-
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。184 收藏
-
Redis 8.8 带来原生 Array 数据结构,适合滚动窗口、按索引读取和范围聚合。本文用一组最小命令验证它与 List 的差异,并给出从 List 迁移前应检查的读写边界、客户端支持和回滚办法。154 收藏
-
数据库 · Redis | 3天前 | Redis · 内存管理 · 故障排查 · 缓存运维 · redis OOM CLIENT NO-EVICT maxmemory-clients noeviction 客户端驱逐Redis 写入报 OOM 时,先区分数据键无法淘汰与客户端输出缓冲触发驱逐。本文用 CLIENT NO-EVICT、maxmemory-clients、maxmemory-policy 和 INFO memory 还原两条故障链,给出核对命令、控制连接保护和回退边界。152 收藏
-
数据库 · Redis | 1星期前 | Redis · 消息队列 · Stream · 故障恢复 · 消费者组 · redis streams 消息重试 消费者组 XAUTOCLAIM 积压消息 PELRedis Streams 消费者组出现积压时,XAUTOCLAIM 可以把超过最小空闲时间的 pending 消息交给健康消费者继续处理。本文用故障接管场景说明 start 游标、COUNT、JUSTID、重试次数和删除幽灵消息的验收边界。148 收藏
-
数据库 · Redis | 17小时前 | Redis · 缓存 · 性能优化 · 数据一致性 · RESP3 · 缓存失效 CLIENT TRACKING RESP3 Redis客户端缓存 OPTINRedis 的服务端缓存很快,但高频读请求仍可能把网络和序列化成本推到应用侧。本文用 Redis Tracking 演示本地缓存如何接收失效通知,比较默认模式与 OPTIN,说明 RESP3、重连、写后读取和广播模式的边界,给出一套可验证的落地检查清单。144 收藏
-
Redis Hash 字段过期后,整条 Hash 不一定会立刻消失。用 HEXPIRE 设置字段级 TTL,用 HTTL 或 HPTTL 检查精度,再结合 HGET、HLEN 和主动读取判断字段是否已不可见;验收时要区分过期时间写入失败、惰性删除和整 key 生命周期。138 收藏
-
数据库 · Redis | 3天前 | Redis · 消息队列 · 数据库 · 性能优化 · Redis Streams · Redis Streams Redis 8.2 XACKDEL XDELEX 多消费组Redis 8.2 为 Streams 增加 XACKDEL 和 XDELEX,可在多消费组场景中把确认与删除、删除与消费组引用处理放进同一条命令。本文用可复现实验比较旧式客户端清理流程与 ACKED 策略的延迟、删除结果和边界。136 收藏
-
Redis RESP3 不是把 RESP2 换个版本号,而是会改变部分命令的返回类型。本文用 Go 和 go-redis 拆开 HGETALL 的 map/array 差异,给出升级判断、解析边界和灰度验证办法。127 收藏
-
数据库 · Redis | 4星期前 | Redis · 缓存 · 限流 · Redis 8.8 · INCREX · Redis 8.8 INCREX Redis窗口限流 Redis计数器 ENX UBOUNDRedis 8.8 新增 INCREX,把计数、上限和过期时间放进一个原子命令。文章用 redis-cli 演示 60 秒窗口限流,解释 UBOUND、ENX、SATURATE 的差别,并给出旧版本回退方案与检查边界。123 收藏
-
Redis SCAN 是渐进式遍历,不是一次性分页接口。本文用游标、MATCH、COUNT 和去重集合拆开“漏键”错觉,给出可验收的清理脚本与边界判断。121 收藏
-
Golang · Go问答 | 3星期前 | 微服务 · Redis · postgresql · go · 性能优化 · Redis连接池 Go连接池 PostgreSQL连接池 context超时 并发预算一个 Go 接口同时查 Redis 和 PostgreSQL 时,连接池参数不能照搬默认值。本文从请求并发、缓存命中率和数据库连接上限出发,拆开两套连接池与 context 超时预算,给出可复现的配置、指标和回退判断。107 收藏