JedisCluster 中psetex()方法如何使用

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",表示操作成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值