# Changelog
本文档记录项目的所有重要变更。
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
## [Unreleased]
## [0.1.4] - 2026-02-03
### 新增
- CacheManager:支持传入已创建的 Redis client(`new_with_client`、`new_with_client_defaults`)
- 文档:新增 `docs/cache/05-接口设计.md`,补充 client 传入示例
### 变更
- 文档:README 增加传入 Redis client 的创建示例
- 依赖:Redis 客户端切换为 rustis
- 依赖:rustis 改为可选特性(默认不启用,需 `features = ["rustis"]`)
- 文档:更新 rustis 启用方式与示例
- 文档:修复 doctest 示例以通过编译
- 兼容:未启用 rustis feature 时不再触发编译错误(仅隐藏实现导出)
## [0.1.2] - 2025-12-30
### 变更
- 配置:调整 Cargo.toml 中的 repository 字段配置
[0.1.4]: https://github.com/secra/secra-cache/releases/tag/v0.1.4
[0.1.2]: https://github.com/secra/secra-cache/releases/tag/v0.1.2
## [0.1.1] - 2024-12-19
### 优化
- 性能优化:使用 `fastrand` 替代 `rand` 库,提升随机数生成性能
- 性能优化:在 `build_key` 方法中使用 `String::with_capacity` 预分配容量,减少内存重新分配
- 性能优化:在 `validate_business_key` 中使用字节级检查替代字符迭代,提升验证性能
- 性能优化:在 `add_key_to_index` 中预分配 HashSet 容量,减少重新分配
- 性能优化:在 `get_all_keys` 中优化克隆操作,预分配容量并减少不必要的内存分配
- 性能优化:优化 `delete_keys` 方法,使用 Redis DEL 命令原生批量删除功能
### 改进
- 文档:为 `PluginCache` 及其方法添加详细的文档注释
- 文档:为 `build_key` 和 `validate_business_key` 方法添加完整的文档说明
- 文档:为 `CacheManager` 的性能优化方法添加注释说明
- 项目元数据:完善 `Cargo.toml` 包元数据(authors, license, description, repository 等)
- 文档:更新 README.md 中的许可证信息和联系方式
- 许可证:添加 MIT 和 Apache-2.0 双重许可证文件
[0.1.1]: https://github.com/secra/secra-cache/releases/tag/v0.1.1
## [0.1.0] - 2024-12-19
### 新增
- 初始版本发布
- 实现统一的缓存管理功能,基于 Redis
- 支持插件化缓存管理,每个插件拥有独立的命名空间
- 实现 CacheManager 核心功能:
- Redis 连接管理
- Key 索引维护
- 插件缓存清理
- 实现 PluginCache 插件缓存接口:
- `get` - 获取缓存
- `set` - 设置缓存(支持 TTL)
- `delete` - 删除缓存
- `exists` - 检查缓存是否存在
- `clear` - 清理插件所有缓存
- `clear_module` - 按模块清理缓存
- 实现 Cache trait,提供统一的缓存操作接口
- 支持 JSON 序列化/反序列化
- 实现生命周期管理,插件卸载/升级时自动清理相关缓存
- 提供配置管理功能(CacheConfig)
- 完善的错误处理(CacheError)
[0.1.0]: https://github.com/secra/secra-cache/releases/tag/v0.1.0