29 Star 304 Fork 62

GVPlunar landing/Rudis

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
test_psetex_command.rs 2.09 KB
一键复制 编辑 原始数据 按行查看 历史
iceymoss 提交于 2026-01-23 16:27 +08:00 . Merge branch 'dev' into feat-set-store
use redis::Commands;
use std::time::Duration;
use tokio::time::sleep;
#[tokio::test]
async fn test_psetex_command() {
let client = redis::Client::open("redis://127.0.0.1:6379/").unwrap();
let mut con = client.get_connection().unwrap();
// clean up any keys that may be present
let _: () = redis::cmd("DEL").arg("test_psetex_key").query(&mut con).unwrap_or(());
// Test PSETEX - Set key values and specify expiration time (ms)
let result: String = redis::cmd("PSETEX")
.arg("test_psetex_key")
.arg(2000) // 2 seconds = 2000 milliseconds
.arg("test_value")
.query(&mut con)
.unwrap();
assert_eq!(result, "OK");
// the verification value is present immediately
let value: String = con.get("test_psetex_key").unwrap();
assert_eq!(value, "test_value");
// wait for expiration
sleep(Duration::from_millis(2500)).await;
// the verification key has expired
let result: Option<String> = con.get("test_psetex_key").ok();
assert_eq!(result, None);
}
#[tokio::test]
async fn test_psetex_overwrite_existing_key() {
let client = redis::Client::open("redis://127.0.0.1:6379").unwrap();
let mut con = client.get_connection().unwrap();
// clean up any keys that may be present
let _: () = redis::cmd("DEL").arg("test_psetex_overwrite").query(&mut con).unwrap_or(());
// set a key first
let _: () = redis::cmd("SET").arg("test_psetex_overwrite").arg("old_value").query(&mut con).unwrap();
// Use PSETEX to override and set a new expiration time
let result: String = redis::cmd("PSETEX")
.arg("test_psetex_overwrite")
.arg(2000)
.arg("new_value")
.query(&mut con)
.unwrap();
assert_eq!(result, "OK");
// verify that the new value exists immediately
let value: String = con.get("test_psetex_overwrite").unwrap();
assert_eq!(value, "new_value");
//wait for expiration
sleep(Duration::from_millis(2500)).await;
// the verification key has expired
let result: Option<String> = con.get("test_psetex_overwrite").ok();
assert_eq!(result, None);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Rust
1
https://gitee.com/lunarlanding/rudis.git
git@gitee.com:lunarlanding/rudis.git
lunarlanding
rudis
Rudis
dev

搜索帮助