mitao
2024-07-08 022a7ff7abf82cd2546e18071ade5228b4e2339f
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
package com.sinata.modular.system.service;
 
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
/**
 * @author KingKong
 * 创建于 2018年9月8日上午10:47:27
 */
public interface RedisTemplateService {
 
   /* redisTemplate.opsForValue();//操作字符串
    redisTemplate.opsForHash();//操作hash
    redisTemplate.opsForList();//操作list
    redisTemplate.opsForSet();// 操作set
    redisTemplate.opsForZSet();//操作有序set*/
 
    //================================================Hash================================================
 
    /**
     *TODO 删除键为key的缓存(hash/set/list/String)
     * @param key
     * tzj 创建于  2018年9月8日 上午11:54:05
     */
    void deleteFromRedis(String key);
 
    /**
     *TODO 查看哈希表 hKey 中,给定域 hashKey 是否存在。
     * @param hKey 哈希表名称
     * @param hashKey 域的hashKey
     * @return  如果哈希表含有给定域,返回 1 。如果哈希表不含有给定域,或 hashKey 不存在,返回 0 。
     * tzj 创建于  2018年9月8日 上午10:50:44
     */
    Boolean hashCheckHxists(String hKey, String hashKey);
 
    /**
     *TODO 查询哈希表 hKey 中给定域 hashKey 的值。
     * @param hKey
     * @param hashKey
     * @return 给定域的值。当给定域不存在或是给定 key 不存在时,返回 nil 。
     * tzj 创建于  2018年9月8日 上午11:02:08
     */
    Object hashGet(String hKey, String hashKey);
 
    /**
     *TODO 添加map
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 上午11:57:33
     */
    void putAll(String key, Map<String, Object> map);
 
    /**
     *TODO 获取所有的散列值
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 上午11:57:33
     */
    Map<Object, Object> hashGetAll(String key);
 
 
    /**
     * 获取的哈希下面的值
     * @param key
     * @param hashKeys
     * @return
     */
    List<Object> multiGet(String key, Collection<Object> hashKeys);
 
    /**
     *TODO 哈希表 hKey 中的域 hashKey 的值加上增量 delta 。
     *
     *增量也可以为负数,相当于对给定域进行减法操作。  如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
     *如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。  对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。
     * @param hKey
     * @param hashKey
     * @param delta
     * @return 执行 HINCRBY 命令之后,哈希表 hKey 中域 hashKey 的值。
     * tzj 创建于  2018年9月8日 上午11:21:32
     */
    Long hashIncrementLongOfHashMap(String hKey, String hashKey, Long delta);
 
    /**
     *TODO 哈希表 hKey 中的域 hashKey 的值加上浮点值 增量 delta 。
     * @param hKey
     * @param hashKey
     * @param delta
     * @return 执行 HINCRBY 命令之后,哈希表 hKey 中域 hashKey 的值。
     * tzj 创建于  2018年9月8日 上午11:42:20
     */
    Double hashIncrementDoubleOfHashMap(String hKey, String hashKey, Double delta);
 
    /**
     *TODO 添加键值对到哈希表key中
     * @param key
     * @param hashKey
     * @param value
     * tzj 创建于  2018年9月8日 上午11:45:41
     */
    void hashPushHashMap(String key, Object hashKey, Object value);
 
    /**
     *TODO 获取哈希表key中的所有域
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 上午11:48:18
     */
    Set<Object> hashGetAllHashKey(String key);
 
    /**
     *TODO 获取散列中的字段数量
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 上午11:50:34
     */
    Long hashGetHashMapSize(String key);
 
    /**
     *TODO 获取哈希中的所有值
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 上午11:51:12
     */
    List<Object> hashGetHashAllValues(String key);
 
    /**
     *TODO 删除一个或多个哈希字段
     * @param key
     * @param hashKeys
     * @return 返回值为被成功删除的数量
     * tzj 创建于  2018年9月8日 上午11:52:22
     */
    Long hashDeleteHashKey(String key, Object... hashKeys);
 
    //================================================List================================================
 
    /**
     *TODO 从右向左存压栈
     * @param key
     * @param value
     * tzj 创建于  2018年9月8日 下午12:21:06
     */
    void listRightPushList(String key, String value);
 
    /**
     *TODO 从右向左存批量压栈
     * @param key
     * @param collection
     * tzj 创建于  2018年9月8日 下午12:21:06
     */
    Long rightPushAll(String key, Collection<String> collection);
 
    /**
     *TODO 从右出栈
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 下午12:21:37
     */
    String listRightPopList(String key);
 
    /**
     *TODO 从左向右存压栈
     * @param key
     * @param value
     * tzj 创建于  2018年9月8日 下午12:05:25
     */
    void listLeftPushList(String key, String value);
 
    /**
     *TODO 从左向右存批量压栈
     * @param key
     * @param collection
     * tzj 创建于  2018年9月8日 下午12:05:25
     */
    Long leftPushAll(String key, Collection<String> collection);
 
 
    /**
     *TODO 从左出栈
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 下午1:56:40
     */
    String listLeftPopList(String key);
 
    /**
     *TODO 集合list的长度
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 下午12:08:05
     */
    Long listSize(String key);
 
    /**
     *TODO 查询列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
     * @param key
     * @param start
     * @param end
     * @return
     * tzj 创建于  2018年9月8日 下午12:09:56
     */
    List<String> listRangeList(String key, Long start, Long end);
 
    /**
     *TODO 移除key中值为value的i个,返回删除的个数;如果没有这个元素则返回0
     * @param key
     * @param i
     * @param value
     * @return
     * tzj 创建于  2018年9月8日 下午12:12:39
     */
    Long listRemoveFromList(String key, long i, Object value);
 
    /**
     *TODO 根据下标查询list中某个值
     * @param key
     * @param index
     * @return
     * tzj 创建于  2018年9月8日 下午12:13:40
     */
    String listIndexFromList(String key, long index);
 
    /**
     *TODO 根据下标设置value
     * @param key
     * @param index
     * @param value
     * tzj 创建于  2018年9月8日 下午12:15:28
     */
    void listSetValueToList(String key, long index, String value);
 
    /**
     *TODO 裁剪(删除), 删除 除了[start,end]以外的所有元素
     * @param key
     * @param start
     * @param end
     * tzj 创建于  2018年9月8日 下午12:17:23
     */
    void listTrimByRange(String key, Long start, Long end);
 
    //================================================Set================================================
 
    /**
     *TODO 将一个或多个 value 元素加入到集合 key 当中,已经存在于集合的 value 元素将被忽略。
     * @param key
     * @param values
     * @return 被添加到集合中的新元素的数量,不包括被忽略的元素。
     * tzj 创建于  2018年9月8日 下午1:59:05
     */
    Long setAddSetMap(String key, String... values);
 
    /**
     *TODO 获取set集合的大小
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 下午2:01:38
     */
    Long setGetSizeForSetMap(String key);
 
    /**
     *TODO 获取set集合中的元素
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 下午2:02:40
     */
    Set<String> setGetMemberOfSetMap(String key);
 
    /**
     *TODO 检查元素是不是set集合中的
     * @param key
     * @param o
     * @return
     * tzj 创建于  2018年9月8日 下午2:03:37
     */
    Boolean setCheckIsMemberOfSet(String key, Object o);
 
    /**
     *TODO 移除set集合中的
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 下午2:03:37
     */
    Long removeSet(String key, String... var);
 
    //================================================String================================================
 
    /**
     *TODO 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
     *     如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
     * @param key
     * @param value
     * @return 追加 value 之后, key 中字符串的长度
     * tzj 创建于  2018年9月8日 下午2:14:03
     */
    Integer stringAppendString(String key, String value);
 
    /**
     *TODO 获取指定键的值
     * @param key
     * @return
     * tzj 创建于  2018年9月8日 下午2:15:09
     */
    String stringGetStringByKey(String key);
 
    /**
     *TODO 批量设置
     * @param maps
     * @return
     * tzj 创建于  2018年9月8日 下午2:15:09
     */
    void stringMultiSet(Map<String, String> maps);
 
    /**
     *TODO 获取
     * @param keys
     * @return
     * tzj 创建于  2018年9月8日 下午2:15:09
     */
    List<String> stringMultiGet(Collection<String> keys);
 
    /**
     *TODO 获取存储在键上的字符串的子字符串
     * @param key
     * @param start
     * @param end
     * @return 截取后的子字符串
     * tzj 创建于  2018年9月8日 下午2:16:11
     */
    String stringGetSubStringFromString(String key, long start, long end);
 
    /**
     *TODO 将键的整数值按给定的长整型数值增加
     * @param key
     * @param delta
     * @return 返回增长后的结果值
     * tzj 创建于  2018年9月8日 下午2:18:00
     */
    Long stringIncrementLongString(String key, Long delta);
 
    /**
     *TODO 将键的整数值按给定的浮点型数值增加
     * @param key
     * @param delta
     * @return 返回增长后的结果值
     * tzj 创建于  2018年9月8日 下午2:18:24
     */
    Double stringIncrementDoubleString(String key, Double delta);
 
    /**
     *TODO 设置指定键的值
     * @param key
     * @param value
     * tzj 创建于  2018年9月8日 下午2:19:28
     */
    void stringSetString(String key, String value);
 
    /**
     *TODO 设置键的字符串值并返回其旧值
     * @param key
     * @param value
     * @return
     * tzj 创建于  2018年9月8日 下午2:20:07
     */
    String stringGetAndSet(String key, String value);
 
    /**
     *TODO 使用键和到期时间来设置值,时间单位默认为毫秒
     * @param key
     * @param value
     * @param timeout
     * @return
     * tzj 创建于  2018年9月8日 下午2:21:30
     */
    void stringSetValueAndExpireTime(String key, String value, long timeout);
 
    /**
     * 设置key的过期时间,单位秒
     * @param key
     * @param timeout
     * @return
     */
    Boolean setKeyExpireTime(String key, long timeout);
 
    boolean set(String key, String  value);
 
    <T> T get(String key);
 
}