首页 > 其他分享 >JedisCluster 中psetex()方法如何使用

JedisCluster 中psetex()方法如何使用

时间:2024-10-15 09:48:28浏览次数:8  
标签:psetex JedisCluster 过期 key nodes 方法 String

JedisCluster 中的 psetex 方法用于设置一个键值对,并同时设置该键的过期时间(以毫秒为单位)。与 setex 的区别在于 psetex 接受的过期时间是以毫秒为单位,而 setex 接受的是以秒为单位。

psetex 方法说明

  • 方法签名

public String psetex(String key, long milliseconds, String value);
  • 参数

    • key: 需要设置的键。
    • milliseconds: 该键的过期时间,单位为毫秒。
    • value: 对应的值。
  • 返回值:当设置成功时,返回字符串 "OK"。

使用示例

以下是一个使用 JedisCluster 调用 psetex 方法的示例代码:

import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;

import java.util.HashSet;
import java.util.Set;

public class JedisClusterExample {
    public static void main(String[] args) {
        // 配置 Redis 集群节点地址
        Set<String> nodes = new HashSet<>();
        nodes.add("127.0.0.1:7000");
        nodes.add("127.0.0.1:7001");
        nodes.add("127.0.0.1:7002");
        
        // 创建 JedisPoolConfig,并配置连接池参数
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(128); // 最大连接数
        config.setMaxIdle(64);   // 最大空闲连接数
        config.setMinIdle(16);   // 最小空闲连接数

        // 创建 JedisCluster 实例
        JedisCluster jedisCluster = new JedisCluster(nodes, config);

        // 使用 psetex 方法设置键值对及过期时间
        String key = "exampleKey";
        String value = "exampleValue";
        long milliseconds = 60000; // 过期时间(毫秒)

        // 调用 psetex 方法
        String result = jedisCluster.psetex(key, milliseconds, value);
        System.out.println("Psetex result: " + result); // 输出 "Psetex result: OK"

        // 读取键的值
        String retrievedValue = jedisCluster.get(key);
        System.out.println("Retrieved value: " + retrievedValue); // 输出存储的值

        // 等待过期(可用于测试,实际使用中不建议这样做)
        try {
            Thread.sleep(70000); // 等待 70 秒,超过过期时间
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 再次读取,检查是否过期
        String expiredValue = jedisCluster.get(key);
        System.out.println("Value after expiration: " + expiredValue); // 应输出 null

        // 关闭 JedisCluster 实例
        jedisCluster.close();
    }
}

注意事项

  1. 过期时间单位:过期时间以毫秒为单位,设置时请注意单位转换。

  2. 键存在与否键存在:调用 psetex 会覆盖原有值并重置过期时间。键不存在:调用 psetex 会创建新键,并设置值和过期时间。

  3. 返回值:无论键是否存在,psetex 方法始终返回 "OK",表示操作成功。

标签:psetex,JedisCluster,过期,key,nodes,方法,String
From: https://blog.csdn.net/xuTao667/article/details/142935710

相关文章