11个版本 (破坏性更新)
0.12.1 | 2024年5月21日 |
---|---|
0.12.0 | 2024年3月24日 |
0.11.0 | 2024年3月16日 |
0.9.0 | 2023年6月11日 |
0.4.0 | 2022年10月22日 |
#1475 in 过程宏
每月下载量156
在 4 个crate中使用 (通过 redis-swapplex)
6KB
redis-swapplex
Redis多路复用,具有重连通知和MGET自动批处理
为什么使用这个而不是 redis::aio::ConnectionManager?
- 无错误重连行为:当命令因连接断开而失败时,此库将立即重连并尝试,不会产生可避免的IoError,后续重连延迟1500ms
- ENV配置简化了Kubernetes的使用
- 可以观察重连,允许使用客户端跟踪重定向实现Redis 服务器辅助客户端缓存
- 集成MGET自动批处理
ENV配置
通过使用带有REDIS
前缀的env-url提供可组合的连接URL,通过环境变量
REDIS_URL=redis://127.0.0.1:6379
# Override env mapping for easy kubernetes config
REDIS_HOST_ENV=MONOLITH_STAGE_REDIS_MASTER_PORT_6379_TCP_ADDR
REDIS_PORT_ENV=MONOLITH_STAGE_REDIS_MASTER_SERVICE_PORT_REDIS
示例
use redis::{AsyncCommands, RedisResult};
use redis_swapplex::get_connection;
async fn get_value(key: &str) -> RedisResult<String> {
let mut conn = get_connection();
conn.get(key).await
}
运行时配置(可选)
为了获得最佳性能,请使用通过crate
属性设置为async_local
并启用了barrier-protected-runtime
功能的async-local
的tokio::main
或tokio::test
宏配置的Tokio运行时。这样做将配置Tokio运行时,在关闭时确保任务不会超过由运行时工作线程拥有的线程局部数据,从而消除了使用Box::leak作为生命周期扩展手段的需要。
依赖项
~260–700KB
~17K SLoC