use std::time::Duration;
#[derive(Debug, Clone)]
pub struct RedisConfig {
pub url: String,
pub pool_size: u32,
pub connection_timeout: Duration,
pub key_prefix: Option<String>,
pub invalidation_channel: String,
}
impl Default for RedisConfig {
fn default() -> Self {
Self {
url: "redis://127.0.0.1:6379".to_string(),
pool_size: 10,
connection_timeout: Duration::from_secs(5),
key_prefix: Some("skp".to_string()),
invalidation_channel: "skp:invalidation".to_string(),
}
}
}
impl RedisConfig {
pub fn new(url: impl Into<String>) -> Self {
Self {
url: url.into(),
..Default::default()
}
}
pub fn pool_size(mut self, size: u32) -> Self {
self.pool_size = size;
self
}
pub fn prefix(mut self, prefix: impl Into<String>) -> Self {
self.key_prefix = Some(prefix.into());
self
}
}