3 个版本

0.0.7 2024 年 8 月 21 日
0.0.6 2024 年 8 月 17 日
0.0.4 2024 年 8 月 7 日

#845数据库接口

Download history 117/week @ 2024-08-05 145/week @ 2024-08-12

262 每月下载量

MIT 许可证

34KB
644

crates.io Documentation

依赖项

spring-redis = { version = "0.0.7" }

配置项

[redis]
uri = "redis://127.0.0.1/" # redis database address

# The following are all optional configurations
connection_timeout = 10000  # Connection timeout, in milliseconds
response_timeout = 1000     # Response timeout, in milliseconds
number_of_retries = 6       # Retry times, interval time increases exponentially
exponent_base = 2           # Interval time exponential base, unit milliseconds
factor = 100                # Interval time growth factor, default 100 times growth
max_delay = 60000           # Maximum interval time

组件

配置以上配置项后,插件将自动注册一个 Redis 连接管理对象。此对象是 redis::aio::ConnectionManager 的别名。

pub type Redis = redis::aio::ConnectionManager;

提取插件注册的组件

RedisPlugin 插件会自动为我们注册一个连接管理对象。我们可以使用 Component 从 AppState 中提取这个连接池。 Component 是 axum 的 extractor

async fn list_all_redis_key(Component(mut redis): Component<Redis>) -> Result<impl IntoResponse> {
    let keys: Vec<String> = redis.keys("*").await.context("redis request failed")?;
    Ok(Json(keys))
}

完整代码参考 redis-example(https://github.com/spring -rs/spring-rs/tree/master/examples/redis-example)

依赖项

~13–25MB
~370K SLoC