rust redis = “0.29.1“ 有没有连接池

发布时间:2026/10/3 22:30:27
rust redis = “0.29.1“ 有没有连接池 redis 0.29.1这个 crate本身没有内置连接池。它提供的是redis::ClientRedis 客户端client.get_connection()获取单个同步连接client.get_multiplexed_async_connection()获取单个异步可复用连接这些都不是连接池。如果你要 Rust Redis 连接池常见做法是额外引入池化库库适用场景deadpool-redis异步推荐bb8-redis异步r2d2_redis同步推荐依赖[dependencies] redis 0.29.1 deadpool-redis 0.18 tokio { version 1, features [full] }版本号以你项目实际能编译通过为准。连接池示例use deadpool_redis::{Manager, Pool}; pub async fn create_redis_pool() - Pool { let mgr Manager::new(redis://127.0.0.1:6379/).unwrap(); Pool::builder(mgr) .max_size(16) .build() .unwrap() }使用连接let pool create_redis_pool().await; let mut conn pool.get().await.unwrap(); let _: () redis::cmd(SET) .arg([foo, bar]) .query_async(mut conn) .await .unwrap();全局静态连接池写法use deadpool_redis::{Manager, Pool}; use tokio::sync::OnceCell; static REDIS_POOL: OnceCellPool OnceCell::const_new(); pub async fn get_redis_pool() - static Pool { REDIS_POOL .get_or_init(|| async { let mgr Manager::new(redis://127.0.0.1:6379/).unwrap(); Pool::builder(mgr) .max_size(16) .build() .unwrap() }) .await }使用let pool get_redis_pool().await; let mut conn pool.get().await.unwrap(); let _: () redis::cmd(GET) .arg([foo]) .query_async(mut conn) .await .unwrap();结论redis 0.29.1没有自带连接池。如果你要连接池建议用deadpool-redis然后全局维护一个Pool每次通过pool.get().await获取连接。需要我把数据库连接池和 Redis 连接池的配置整合成一份完整的 Cargo.toml 依赖清单吗

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询