use redisson::{AsyncRedissonClient, RedissonConfig, RedissonResult};
#[tokio::main]
async fn main() -> RedissonResult<()> {
let config = RedissonConfig::single_server("redis://172.16.8.16:6379");
let client = AsyncRedissonClient::new(config).await?;
let bucket = client.get_bucket::<String>("async_bucket");
bucket.set(&"Async Hello".to_string()).await?;
let value = bucket.get().await?;
println!("Async bucket value: {:?}", value);
let lock = client.get_lock("async_lock");
lock.lock().await?;
println!("Async critical section accessed");
lock.unlock().await?;
client.shutdown().await?;
Ok(())
}