用途:提供 Redis 内存数据存储的专业协助,覆盖数据结构、缓存、发布订阅、Lua 脚本、Redis Streams 与集群。适用场景包括内存缓存与亚毫秒读取(缓存热点数据库对象、会话状态、API 响应)、分布式锁与并发控制(Redlock 或 SET NX PX)、高速队列与发布订阅(消息代理、任务队列、实时事件广播)、基于有序集合(ZSET)的限流与排行榜。
主要能力:支持 String、Hash、List、Set、Sorted Set、Stream 等原生命令,例如 SET、INCR、HSET、LPUSH、BRPOP、SADD、SINTER、ZADD、XADD。可用 SET NX PX 与 Lua 脚本实现原子分布式锁的获取与释放;用 ZSET 实现滑动窗口限流,或通过 Lua 脚本保证检查与计数的原子性。
使用方式:先设置带过期时间的值,如 SET session:123 "active" EX 10;原子计数用 INCR page:views;存对象用 HSET user:100 name "Jeevan" role "admin"。Node.js 环境可安装 ioredis 并连接,用 redis.set(key, token, "NX", "PX", ttlMs) 获取锁,用 eval 执行原子 Lua 释放锁;限流示例使用 pipeline 组合 zremrangebyscore、zadd、zcard、expire。
限制与注意事项:不要在生产环境执行 KEYS *,应改用 SCAN;避免存储数 MB 的大值,因 Redis 单线程会拖慢并发请求;应配置 maxmemory-policy(如 volatile-lru 或 allkeys-lru);如不能丢数据需启用 RDB 或 AOF。常见错误包括内存超限报 OOM、重启时 LOADING、向只读副本写入报 READONLY,需分别调整淘汰策略、等待数据加载或用 BGREWRITEAOF 优化、检查写入路由到主节点。更多细节暂未提供。