核心用法
memory-cache 是一个基于 Redis 的标准化缓存技能,为 OpenClaw 代理提供高性能临时存储能力。核心操作包括:
- 存储与读取:通过
cache.sh set/get命令管理键值对,支持可选 TTL(秒级过期)。 - 命名空间隔离:强制使用
mema:前缀(如mema:context:*、mema:cache:*、mema:state:*),避免与其他 Redis 数据冲突。 - 管理操作:
scan支持模式匹配查询,ping用于健康检查。
显著优点
1. 性能优越:Redis 作为内存数据库,读写延迟极低(亚毫秒级),适合高频缓存场景。
2. 数据隔离:严格的 mema: 前缀约定,配合 Redis 数据库编号选择,实现多租户级别的隔离。
3. 生产安全:使用 SCAN 替代 KEYS 命令,避免阻塞生产环境的大键扫描风险。
4. TTL 自动过期:原生支持键值生存周期管理,无需手动清理,降低运维负担。
5. 虚拟环境隔离:Python 依赖独立安装在 .venv,避免污染宿主系统。
潜在缺点与局限性
- 外部依赖强:必须预先部署并维护 Redis 服务,本地开发成本较高。
- 无持久化保障:纯内存存储,Redis 重启或崩溃可能导致数据丢失(除非配置 AOF/RDB)。
- 网络延迟敏感:远程 Redis 实例受网络质量影响,可能抵消缓存性能优势。
- JSON 序列化开销:复杂对象的序列化/反序列化带来额外 CPU 与内存消耗。
- 权限管理缺失:依赖环境变量
REDIS_URL中的凭据,无细粒度 ACL 控制说明。
适合人群
- 已有 Redis 基础设施的运维团队或开发者。
- 需要跨会话共享临时状态的 Agent 应用架构。
- 对缓存一致性要求不极端严格(允许秒级过期)的 API 结果缓存场景。
常规风险
- 凭据泄露:
REDIS_URL含明文密码,需确保.env文件权限与传输安全。 - 命名空间污染:虽强制
mema:前缀,但恶意或误操作仍可能覆盖他人数据。 - 内存溢出:无键数量或内存上限的硬性限制,需配合 Redis
maxmemory策略使用。 - 脚本注入:
cache.sh接收用户输入作为键名和值,需确保调用方已做输入过滤,防止 shell 注入或 Redis 命令注入。