核心用法
memory-cache 为 OpenClaw 智能体提供标准化的 Redis 后端缓存能力,通过命令行脚本封装常用操作:
- 存取操作:
cache.sh set <key> <value> [--ttl <秒>]存储键值,cache.sh get <key>检索数据 - 批量管理:
cache.sh scan [pattern]安全遍历键空间(使用非阻塞 SCAN 而非 KEYS) - 健康检查:
cache.sh ping验证 Redis 连通性
命名空间强制以 mema: 为前缀,内置三类场景:mema:context:*(会话临时数据)、mema:cache:*(通用 API 缓存)、mema:state:*(跨会话持久状态)。
显著优点
1. 性能卓越:Redis 内存存储提供亚毫秒级读写延迟,适合高频临时数据场景
2. 安全隔离:强制命名空间前缀 + 虚拟环境独立部署,避免键冲突与依赖污染
3. 生产友好:SCAN 替代 KEYS 防止大实例阻塞,TTL 机制自动清理过期数据
4. 开箱即用:自动创建 Python venv 并安装依赖,降低运维门槛
潜在缺点与局限性
- 外部依赖重:必须预置 Redis 服务及
REDIS_URL环境变量,单机/离线场景受限 - 数据易失性:纯内存存储,Redis 故障或重启未持久化配置时数据丢失
- 序列化开销:JSON 编解码增加少量延迟,二进制大对象场景非最优
- 无分布式锁:原生实现未包含并发控制,多实例竞态条件需额外处理
适合人群
- 需要为 AI Agent 配置高性能临时存储的开发者
- 已有 Redis 基础设施、追求低延迟会话管理的团队
- 希望快速实现 API 结果缓存而不自建缓存层的工程场景
常规风险
| 风险项 | 说明 |
|--------|------|
| 连接泄露 | 脚本异常退出可能导致连接未关闭,长期运行建议监控 `CLIENT LIST` |
| 内存溢出 | 未设置 TTL 或过大 value 可能撑满 Redis,建议配置 `maxmemory-policy` |
| 凭证暴露 | `REDIS_URL` 含密码,需确保 `.env` 文件权限 600 且不入版本控制 |
| 网络分区 | 远程 Redis 连接中断时缓存失效,关键路径需设计降级策略 |