1
zj
2024-07-29 f6f3df18ea57ea4128fcccf3282e1520e867c631
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package org.example.util;
 
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Protocol;
 
import java.util.List;
import java.util.Set;
 
public class RedisUtil {
    private static JedisPool jedisPool;
 
    static {
        jedisPool = new JedisPool(new JedisPoolConfig(), "localhost", 6379, Protocol.DEFAULT_TIMEOUT, null, 0);
    }
 
    // 私有构造方法,防止实例化
    private RedisUtil() {}
 
    public static void set(String key, String value) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.set(key, value);
        }
    }
 
    public static String get(String key) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.get(key);
        }
    }
 
    public static Set<String> keys(String key) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.keys("*"+key+"*");
        }
    }
 
    public static void hset(String key, String field, String value) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.hset(key, field, value);
        }
    }
 
    public static String hget(String key, String field) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.hget(key, field);
        }
    }
 
    public static void lpush(String key, String... values) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.lpush(key, values);
        }
    }
 
    public static List<String> lrange(String key, long start, long end) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.lrange(key, start, end);
        }
    }
 
    public static void sadd(String key, String... members) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.sadd(key, members);
        }
    }
 
    public static Set<String> smembers(String key) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.smembers(key);
        }
    }
 
    public static void zadd(String key, double score, String member) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.zadd(key, score, member);
        }
    }
 
    public static Set<String> zrange(String key, long start, long end) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.zrange(key, start, end);
        }
    }
 
    public static void delete(String key) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.del(key);
        }
    }
 
    // 设置 Token 的过期时间
    public void setTokenExpiration(String token, int expirationInSeconds) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.expire(token, expirationInSeconds);
        }
 
    }
 
    // 更新 Token 的过期时间
    public void updateTokenExpiration(String token, int expirationInSeconds) {
        try (Jedis jedis = jedisPool.getResource()) {
            if (jedis.exists(token)) {
                jedis.expire(token, expirationInSeconds);
            }
        }
    }
 
 
    public static void disconnect() {
        jedisPool.close();
    }
 
    // 示例用法
    public static void main(String[] args) {
        // 直接使用 RedisUtil 的静态方法
        RedisUtil.set("mykey", "myvalue");
        String value = RedisUtil.get("mykey");
        System.out.println("Value for 'mykey': " + value);
 
        RedisUtil.hset("user:1", "name", "Alice");
        String userName = RedisUtil.hget("user:1", "name");
        System.out.println("Name for 'user:1': " + userName);
 
        RedisUtil.lpush("mylist", "element1", "element2", "element3");
        List<String> listValues = RedisUtil.lrange("mylist", 0, -1);
        System.out.println("Values in 'mylist': " + listValues);
 
        RedisUtil.sadd("myset", "member1", "member2", "member3");
        Set<String> setMembers = RedisUtil.smembers("myset");
        System.out.println("Members in 'myset': " + setMembers);
 
        RedisUtil.zadd("myzset", 1.0, "member1");
        RedisUtil.zadd("myzset", 2.0, "member2");
        Set<String> zsetMembers = RedisUtil.zrange("myzset", 0, -1);
        System.out.println("Members in 'myzset': " + zsetMembers);
 
        RedisUtil.delete("mykey");
        RedisUtil.delete("user:1");
        RedisUtil.delete("mylist");
        RedisUtil.delete("myset");
        RedisUtil.delete("myzset");
 
        RedisUtil.disconnect();
    }
}