代码拉取完成,页面将自动刷新
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);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。