
Redis缓存
2024/10/30大约 2 分钟
这个文件是一个基于Redis的缓存实现,为Rust应用程序提供了完整的Redis操作功能。
文件位置:redis.rs
核心结构
RedisCache结构体包含两个主要组件:
pool: Redis连接池,用于管理数据库连接namespace: 命名空间,支持键值的逻辑分组
主要功能模块
1. 基础连接管理
- 异步连接池初始化
- 命名空间支持,所有键操作都会自动添加命名空间前缀
- 连接池的克隆和共享
2. 字符串操作
set_string/get_string: 基础的字符串存取set_string_ex: 带过期时间的字符串设置get_one_use: 一次性获取(获取后删除)
3. 序列化对象操作
set_value/get_value: 支持任意可序列化对象的存取set_value_ex: 带过期时间的对象存储get_oneuse_value: 一次性对象获取
4. 键管理
remove: 删除指定键contains_key: 检查键是否存在ttl: 获取键的剩余生存时间
5. 高级Redis数据结构操作
- 有序集合(ZSet):
zadd,zrange,zrangebyscore_limit,zrem,zadd_ch - 集合(Set):
sadd - 列表(List):
lpush,brpop(阻塞式弹出) - 原子操作:
set_nx_ex(不存在时设置)
6. 缓存管理和查询
get_all: 获取所有缓存项get_all_paginated: 分页查询缓存项,支持搜索过滤recycling: 缓存回收接口
7. 命名空间管理
with_namespace: 创建带新命名空间的实例set_namespace: 动态修改命名空间namespaced_key/namespaced_keys: 键名转换工具
技术特点
异步支持: 所有操作都是异步的,使用async/await模式 类型安全: 通过泛型和Serde序列化确保类型安全 错误处理: 统一的错误处理机制 连接池: 使用bb8连接池提高性能 命名空间隔离: 支持多租户或模块间的数据隔离
这个实现为应用程序提供了一个功能完整、类型安全且高性能的Redis缓存抽象层。