
Redis缓存
大约 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缓存抽象层。