use redisson::{RedissonClient, RedissonConfig, RedissonResult};
use std::time::Duration;
fn main() -> RedissonResult<()> {
let config = RedissonConfig::single_server("redis://172.16.8.16:6379")
.with_pool_size(20)
.with_watchdog_timeout(Duration::from_secs(30));
let client = RedissonClient::new(config)?;
let bucket = client.get_bucket::<String>("my_bucket");
bucket.set(&"Hello World".to_string())?;
let value: Option<String> = bucket.get()?;
println!("Bucket value: {:?}", value);
let lock = client.get_lock("my_lock");
lock.lock()?;
println!("Critical section accessed");
lock.unlock()?;
let map = client.get_map::<String, i32>("my_map");
map.put(&"key1".to_string(), &42)?;
let map_value = map.get(&"key1".to_string())?;
println!("Map value: {:?}", map_value);
client.shutdown()?;
Ok(())
}