SuperAPI AI 工具集

litestar-stores

编程与开发

查看项目

更新于 10-15 16:48

技能介绍

用途:当问题属于 Litestar 可替换的键值存储层(缓存、会话、限流或其他临时/共享键值状态),而非关系型数据建模时使用本技能。

主要能力:围绕 set(key, value, expires_in=...)、get(key, renew_for=...)、delete(key)、delete_all()、exists(key)、expires_in(key) 等异步 API 组织存储操作;指导后端选择(MemoryStore、FileStore、RedisStore、ValkeyStore);处理 TTL 绝对过期与读取续期、命名空间隔离、StoreRegistry 注册与默认工厂、以及缓存/会话/限流集成的按名装配。

使用方式:按执行流程先判断功能是否真属于存储层,再依据进程模型、持久性、延迟与清理需求选后端;决定显式按名装配、经 StoreRegistry 懒创建,还是由命名空间默认工厂派生;定义键命名、命名空间边界与 TTL 策略;将响应缓存、会话、限流指向具名存储;规划清理与关闭行为。集成默认使用 response_cache、sessions、rate_limit 等存储名,可通过各自配置改指其他名称。

适用场景:单进程缓存、磁盘持久化、多 worker 共享状态、会话与限流等。

限制:存储契约以字节为主,set() 可接受字符串但 get() 返回字节;MemoryStore 非线程/多进程安全且无持久化;FileStore 过期项不会主动删除,需调用 delete_expired();Redis 传 namespace=None 会禁用命名空间并使 delete_all() 不可用;不要假设各后端清理过期数据方式一致,也不要把存储当作可查询持久化替代。

参考文档:https://docs.litestar.dev/latest/usage/stores.html 等。