From c6c9b7d3baa822765768c110304d27623f946286 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期二, 15 七月 2025 14:29:09 +0800
Subject: [PATCH] `1`
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/RedisUtil.java | 1332 ++++++++++++++++++++++++++++----------------------------
1 files changed, 666 insertions(+), 666 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/RedisUtil.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/RedisUtil.java
index a532f7c..f132f89 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/RedisUtil.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/RedisUtil.java
@@ -1,666 +1,666 @@
-package com.zy.asrs.wms.utils;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-/**
- * redisTemplate灏佽
- *
- */
-@Component
-public class RedisUtil {
-
- @Autowired
- private RedisTemplate redisTemplate;
-
- public RedisTemplate getRedisTemplate() {
- return redisTemplate;
- }
-
- public RedisUtil(RedisTemplate redisTemplate) {
- this.redisTemplate = redisTemplate;
- }
-
- /**
- * 鎸囧畾缂撳瓨澶辨晥鏃堕棿
- *
- * @param key 閿�
- * @param time 鏃堕棿(绉�)
- * @return
- */
- public boolean expire(String key, long time) {
- try {
- if (time > 0) {
- redisTemplate.expire(key, time, TimeUnit.SECONDS);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鏍规嵁key 鑾峰彇杩囨湡鏃堕棿
- *
- * @param key 閿� 涓嶈兘涓簄ull
- * @return 鏃堕棿(绉�) 杩斿洖0浠h〃涓烘案涔呮湁鏁�
- */
- public long getExpire(String key) {
- return redisTemplate.getExpire(key, TimeUnit.SECONDS);
- }
-
- /**
- * 鍒ゆ柇key鏄惁瀛樺湪
- *
- * @param key 閿�
- * @return true 瀛樺湪 false涓嶅瓨鍦�
- */
- public boolean hasKey(String key) {
- try {
- return redisTemplate.hasKey(key);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍒犻櫎缂撳瓨
- *
- * @param key 鍙互浼犱竴涓�� 鎴栧涓�
- */
- @SuppressWarnings("unchecked")
- public void del(String... key) {
- if (key != null && key.length > 0) {
- if (key.length == 1) {
- redisTemplate.delete(key[0]);
- } else {
- redisTemplate.delete(CollectionUtils.arrayToList(key));
- }
- }
- }
-
- //============================ String =============================
-
- /**
- * 鏅�氱紦瀛樿幏鍙�
- *
- * @param key 閿�
- * @return 鍊�
- */
- public Object get(String key) {
- return key == null ? null : redisTemplate.opsForValue().get(key);
- }
-
- /**
- * 鑾峰彇鍏ㄩ儴鏁版嵁
- * @return
- */
- public HashMap<Object, Object> getRedis() {
- Set<String> keys = redisTemplate.keys("*");
- HashMap<Object, Object> map = new HashMap<>();
- for (String key : keys) {
- Object value = redisTemplate.opsForValue().get(key);
- map.put(key, value);
- }
-
- return map;//杩斿洖鍏ㄩ儴鏁版嵁闆嗗悎
- }
-
- /**
- * 妯$硦鏌ヨ鏁版嵁
- */
- public HashMap<Object, Object> searchRedis(String data) {
- Set<String> keys = redisTemplate.keys("*" + data + "*");
- HashMap<Object, Object> map = new HashMap<>();
- for (String key : keys) {
- Object value = redisTemplate.opsForValue().get(key);
- map.put(key, value);
- }
- return map;
- }
-
- /**
- * 妯$硦鏌ヨ鏁版嵁
- */
- public Set<String> searchRedisKeys(String data) {
- Set<String> keys = redisTemplate.keys("*" + data + "*");
- return keys;
- }
-
- /**
- * 鏅�氱紦瀛樻斁鍏�
- *
- * @param key 閿�
- * @param value 鍊�
- * @return true鎴愬姛 false澶辫触
- */
- public boolean set(String key, Object value) {
- try {
- redisTemplate.opsForValue().set(key, value);
- long start = System.currentTimeMillis();
- while (System.currentTimeMillis() - start < 10000) {//鏈夋晥鏈�10s
- Object o = redisTemplate.opsForValue().get(key);
- if (o == null) {
- continue;
- }
-
- if (o.equals(value)) {
- break;
- }
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鏅�氱紦瀛樻斁鍏�-寮傛
- *
- * @param key 閿�
- * @param value 鍊�
- * @return true鎴愬姛 false澶辫触
- */
- public boolean setAsync(String key, Object value) {
- try {
- redisTemplate.opsForValue().set(key, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鏅�氱紦瀛樻斁鍏ュ苟璁剧疆鏃堕棿
- *
- * @param key 閿�
- * @param value 鍊�
- * @param time 鏃堕棿(绉�) time瑕佸ぇ浜�0 濡傛灉time灏忎簬绛変簬0 灏嗚缃棤闄愭湡
- * @return true鎴愬姛 false 澶辫触
- */
- public boolean set(String key, Object value, long time) {
- try {
- if (time > 0) {
- redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
- } else {
- set(key, value);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 閫掑
- *
- * @param key 閿�
- * @param delta 瑕佸鍔犲嚑(澶т簬0)
- * @return
- */
- public long incr(String key, long delta) {
- if (delta < 0) {
- throw new RuntimeException("閫掑鍥犲瓙蹇呴』澶т簬0");
- }
- return redisTemplate.opsForValue().increment(key, delta);
- }
-
- /**
- * 閫掑噺
- *
- * @param key 閿�
- * @param delta 瑕佸噺灏戝嚑(灏忎簬0)
- * @return
- */
- public long decr(String key, long delta) {
- if (delta < 0) {
- throw new RuntimeException("閫掑噺鍥犲瓙蹇呴』澶т簬0");
- }
- return redisTemplate.opsForValue().increment(key, -delta);
- }
-
- //================================ Hash =================================
-
- /**
- * HashGet
- *
- * @param key 閿� 涓嶈兘涓簄ull
- * @param item 椤� 涓嶈兘涓簄ull
- * @return 鍊�
- */
- public Object hget(String key, String item) {
- return redisTemplate.opsForHash().get(key, item);
- }
-
- /**
- * 鑾峰彇hashKey瀵瑰簲鐨勬墍鏈夐敭鍊�
- *
- * @param key 閿�
- * @return 瀵瑰簲鐨勫涓敭鍊�
- */
- public Map<Object, Object> hmget(String key) {
- return redisTemplate.opsForHash().entries(key);
- }
-
- /**
- * HashSet
- *
- * @param key 閿�
- * @param map 瀵瑰簲澶氫釜閿��
- * @return true 鎴愬姛 false 澶辫触
- */
- public boolean hmset(String key, Map<String, Object> map) {
- try {
- redisTemplate.opsForHash().putAll(key, map);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * HashSet 骞惰缃椂闂�
- *
- * @param key 閿�
- * @param map 瀵瑰簲澶氫釜閿��
- * @param time 鏃堕棿(绉�)
- * @return true鎴愬姛 false澶辫触
- */
- public boolean hmset(String key, Map<String, Object> map, long time) {
- try {
- redisTemplate.opsForHash().putAll(key, map);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍚戜竴寮爃ash琛ㄤ腑鏀惧叆鏁版嵁,濡傛灉涓嶅瓨鍦ㄥ皢鍒涘缓
- *
- * @param key 閿�
- * @param item 椤�
- * @param value 鍊�
- * @return true 鎴愬姛 false澶辫触
- */
- public boolean hset(String key, String item, Object value) {
- try {
- redisTemplate.opsForHash().put(key, item, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍚戜竴寮爃ash琛ㄤ腑鏀惧叆鏁版嵁,濡傛灉涓嶅瓨鍦ㄥ皢鍒涘缓
- *
- * @param key 閿�
- * @param item 椤�
- * @param value 鍊�
- * @param time 鏃堕棿(绉�) 娉ㄦ剰:濡傛灉宸插瓨鍦ㄧ殑hash琛ㄦ湁鏃堕棿,杩欓噷灏嗕細鏇挎崲鍘熸湁鐨勬椂闂�
- * @return true 鎴愬姛 false澶辫触
- */
- public boolean hset(String key, String item, Object value, long time) {
- try {
- redisTemplate.opsForHash().put(key, item, value);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍒犻櫎hash琛ㄤ腑鐨勫��
- *
- * @param key 閿� 涓嶈兘涓簄ull
- * @param item 椤� 鍙互浣垮涓� 涓嶈兘涓簄ull
- */
- public void hdel(String key, Object... item) {
- redisTemplate.opsForHash().delete(key, item);
- }
-
- /**
- * 鍒ゆ柇hash琛ㄤ腑鏄惁鏈夎椤圭殑鍊�
- *
- * @param key 閿� 涓嶈兘涓簄ull
- * @param item 椤� 涓嶈兘涓簄ull
- * @return true 瀛樺湪 false涓嶅瓨鍦�
- */
- public boolean hHasKey(String key, String item) {
- return redisTemplate.opsForHash().hasKey(key, item);
- }
-
- /**
- * hash閫掑 濡傛灉涓嶅瓨鍦�,灏变細鍒涘缓涓�涓� 骞舵妸鏂板鍚庣殑鍊艰繑鍥�
- *
- * @param key 閿�
- * @param item 椤�
- * @param by 瑕佸鍔犲嚑(澶т簬0)
- * @return
- */
- public double hincr(String key, String item, double by) {
- return redisTemplate.opsForHash().increment(key, item, by);
- }
-
- /**
- * hash閫掑噺
- *
- * @param key 閿�
- * @param item 椤�
- * @param by 瑕佸噺灏戣(灏忎簬0)
- * @return
- */
- public double hdecr(String key, String item, double by) {
- return redisTemplate.opsForHash().increment(key, item, -by);
- }
-
- //============================ set =============================
-
- /**
- * 鏍规嵁key鑾峰彇Set涓殑鎵�鏈夊��
- *
- * @param key 閿�
- * @return
- */
- public Set<Object> sGet(String key) {
- try {
- return redisTemplate.opsForSet().members(key);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- /**
- * 鏍规嵁value浠庝竴涓猻et涓煡璇�,鏄惁瀛樺湪
- *
- * @param key 閿�
- * @param value 鍊�
- * @return true 瀛樺湪 false涓嶅瓨鍦�
- */
- public boolean sHasKey(String key, Object value) {
- try {
- return redisTemplate.opsForSet().isMember(key, value);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏嗘暟鎹斁鍏et缂撳瓨
- *
- * @param key 閿�
- * @param values 鍊� 鍙互鏄涓�
- * @return 鎴愬姛涓暟
- */
- public long sSet(String key, Object... values) {
- try {
- return redisTemplate.opsForSet().add(key, values);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 灏唖et鏁版嵁鏀惧叆缂撳瓨
- *
- * @param key 閿�
- * @param time 鏃堕棿(绉�)
- * @param values 鍊� 鍙互鏄涓�
- * @return 鎴愬姛涓暟
- */
- public long sSetAndTime(String key, long time, Object... values) {
- try {
- Long count = redisTemplate.opsForSet().add(key, values);
- if (time > 0) {
- expire(key, time);
- }
- return count;
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 鑾峰彇set缂撳瓨鐨勯暱搴�
- *
- * @param key 閿�
- * @return
- */
- public long sGetSetSize(String key) {
- try {
- return redisTemplate.opsForSet().size(key);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 绉婚櫎鍊间负value鐨�
- *
- * @param key 閿�
- * @param values 鍊� 鍙互鏄涓�
- * @return 绉婚櫎鐨勪釜鏁�
- */
- public long setRemove(String key, Object... values) {
- try {
- Long count = redisTemplate.opsForSet().remove(key, values);
- return count;
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
- //===============================list=================================
-
- /**
- * 鑾峰彇list缂撳瓨鐨勫唴瀹�
- *
- * @param key 閿�
- * @param start 寮�濮�
- * @param end 缁撴潫 0 鍒� -1浠h〃鎵�鏈夊��
- * @return
- */
- public List<Object> lGet(String key, long start, long end) {
- try {
- return redisTemplate.opsForList().range(key, start, end);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- /**
- * 鑾峰彇list缂撳瓨鐨勯暱搴�
- *
- * @param key 閿�
- * @return
- */
- public long lGetListSize(String key) {
- try {
- return redisTemplate.opsForList().size(key);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 閫氳繃绱㈠紩 鑾峰彇list涓殑鍊�
- *
- * @param key 閿�
- * @param index 绱㈠紩 index>=0鏃讹紝 0 琛ㄥご锛�1 绗簩涓厓绱狅紝渚濇绫绘帹锛沬ndex<0鏃讹紝-1锛岃〃灏撅紝-2鍊掓暟绗簩涓厓绱狅紝渚濇绫绘帹
- * @return
- */
- public Object lGetIndex(String key, long index) {
- try {
- return redisTemplate.opsForList().index(key, index);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- /**
- * 灏唋ist鏀惧叆缂撳瓨
- *
- * @param key 閿�
- * @param value 鍊�
- * @return
- */
- public boolean lSet(String key, Object value) {
- try {
- redisTemplate.opsForList().rightPush(key, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏唋ist鏀惧叆缂撳瓨
- *
- * @param key 閿�
- * @param value 鍊�
- * @param time 鏃堕棿(绉�)
- * @return
- */
- public boolean lSet(String key, Object value, long time) {
- try {
- redisTemplate.opsForList().rightPush(key, value);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏唋ist鏀惧叆缂撳瓨
- *
- * @param key 閿�
- * @param value 鍊�
- * @return
- */
- public boolean lSet(String key, List<Object> value) {
- try {
- redisTemplate.opsForList().rightPushAll(key, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏唋ist鏀惧叆缂撳瓨
- *
- * @param key 閿�
- * @param value 鍊�
- * @param time 鏃堕棿(绉�)
- * @return
- */
- public boolean lSet(String key, List<Object> value, long time) {
- try {
- redisTemplate.opsForList().rightPushAll(key, value);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鏍规嵁绱㈠紩淇敼list涓殑鏌愭潯鏁版嵁
- *
- * @param key 閿�
- * @param index 绱㈠紩
- * @param value 鍊�
- * @return
- */
- public boolean lUpdateIndex(String key, long index, Object value) {
- try {
- redisTemplate.opsForList().set(key, index, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 绉婚櫎N涓�间负value
- *
- * @param key 閿�
- * @param count 绉婚櫎澶氬皯涓�
- * @param value 鍊�
- * @return 绉婚櫎鐨勪釜鏁�
- */
- public long lRemove(String key, long count, Object value) {
- try {
- Long remove = redisTemplate.opsForList().remove(key, count, value);
- return remove;
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 妯$硦鏌ヨ鑾峰彇key鍊�
- *
- * @param pattern
- * @return
- */
- public Set keys(String pattern) {
- return redisTemplate.keys(pattern);
- }
-
- /**
- * 浣跨敤Redis鐨勬秷鎭槦鍒�
- *
- * @param channel
- * @param message 娑堟伅鍐呭
- */
- public void convertAndSend(String channel, Object message) {
- redisTemplate.convertAndSend(channel, message);
- }
-
-
-}
-
+package com.zy.asrs.wms.utils;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * redisTemplate灏佽
+ *
+ */
+@Component
+public class RedisUtil {
+
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ public RedisTemplate getRedisTemplate() {
+ return redisTemplate;
+ }
+
+ public RedisUtil(RedisTemplate redisTemplate) {
+ this.redisTemplate = redisTemplate;
+ }
+
+ /**
+ * 鎸囧畾缂撳瓨澶辨晥鏃堕棿
+ *
+ * @param key 閿�
+ * @param time 鏃堕棿(绉�)
+ * @return
+ */
+ public boolean expire(String key, long time) {
+ try {
+ if (time > 0) {
+ redisTemplate.expire(key, time, TimeUnit.SECONDS);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鏍规嵁key 鑾峰彇杩囨湡鏃堕棿
+ *
+ * @param key 閿� 涓嶈兘涓簄ull
+ * @return 鏃堕棿(绉�) 杩斿洖0浠h〃涓烘案涔呮湁鏁�
+ */
+ public long getExpire(String key) {
+ return redisTemplate.getExpire(key, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 鍒ゆ柇key鏄惁瀛樺湪
+ *
+ * @param key 閿�
+ * @return true 瀛樺湪 false涓嶅瓨鍦�
+ */
+ public boolean hasKey(String key) {
+ try {
+ return redisTemplate.hasKey(key);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鍒犻櫎缂撳瓨
+ *
+ * @param key 鍙互浼犱竴涓�� 鎴栧涓�
+ */
+ @SuppressWarnings("unchecked")
+ public void del(String... key) {
+ if (key != null && key.length > 0) {
+ if (key.length == 1) {
+ redisTemplate.delete(key[0]);
+ } else {
+ redisTemplate.delete(CollectionUtils.arrayToList(key));
+ }
+ }
+ }
+
+ //============================ String =============================
+
+ /**
+ * 鏅�氱紦瀛樿幏鍙�
+ *
+ * @param key 閿�
+ * @return 鍊�
+ */
+ public Object get(String key) {
+ return key == null ? null : redisTemplate.opsForValue().get(key);
+ }
+
+ /**
+ * 鑾峰彇鍏ㄩ儴鏁版嵁
+ * @return
+ */
+ public HashMap<Object, Object> getRedis() {
+ Set<String> keys = redisTemplate.keys("*");
+ HashMap<Object, Object> map = new HashMap<>();
+ for (String key : keys) {
+ Object value = redisTemplate.opsForValue().get(key);
+ map.put(key, value);
+ }
+
+ return map;//杩斿洖鍏ㄩ儴鏁版嵁闆嗗悎
+ }
+
+ /**
+ * 妯$硦鏌ヨ鏁版嵁
+ */
+ public HashMap<Object, Object> searchRedis(String data) {
+ Set<String> keys = redisTemplate.keys("*" + data + "*");
+ HashMap<Object, Object> map = new HashMap<>();
+ for (String key : keys) {
+ Object value = redisTemplate.opsForValue().get(key);
+ map.put(key, value);
+ }
+ return map;
+ }
+
+ /**
+ * 妯$硦鏌ヨ鏁版嵁
+ */
+ public Set<String> searchRedisKeys(String data) {
+ Set<String> keys = redisTemplate.keys("*" + data + "*");
+ return keys;
+ }
+
+ /**
+ * 鏅�氱紦瀛樻斁鍏�
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @return true鎴愬姛 false澶辫触
+ */
+ public boolean set(String key, Object value) {
+ try {
+ redisTemplate.opsForValue().set(key, value);
+ long start = System.currentTimeMillis();
+ while (System.currentTimeMillis() - start < 10000) {//鏈夋晥鏈�10s
+ Object o = redisTemplate.opsForValue().get(key);
+ if (o == null) {
+ continue;
+ }
+
+ if (o.equals(value)) {
+ break;
+ }
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鏅�氱紦瀛樻斁鍏�-寮傛
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @return true鎴愬姛 false澶辫触
+ */
+ public boolean setAsync(String key, Object value) {
+ try {
+ redisTemplate.opsForValue().set(key, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鏅�氱紦瀛樻斁鍏ュ苟璁剧疆鏃堕棿
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @param time 鏃堕棿(绉�) time瑕佸ぇ浜�0 濡傛灉time灏忎簬绛変簬0 灏嗚缃棤闄愭湡
+ * @return true鎴愬姛 false 澶辫触
+ */
+ public boolean set(String key, Object value, long time) {
+ try {
+ if (time > 0) {
+ redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
+ } else {
+ set(key, value);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 閫掑
+ *
+ * @param key 閿�
+ * @param delta 瑕佸鍔犲嚑(澶т簬0)
+ * @return
+ */
+ public long incr(String key, long delta) {
+ if (delta < 0) {
+ throw new RuntimeException("閫掑鍥犲瓙蹇呴』澶т簬0");
+ }
+ return redisTemplate.opsForValue().increment(key, delta);
+ }
+
+ /**
+ * 閫掑噺
+ *
+ * @param key 閿�
+ * @param delta 瑕佸噺灏戝嚑(灏忎簬0)
+ * @return
+ */
+ public long decr(String key, long delta) {
+ if (delta < 0) {
+ throw new RuntimeException("閫掑噺鍥犲瓙蹇呴』澶т簬0");
+ }
+ return redisTemplate.opsForValue().increment(key, -delta);
+ }
+
+ //================================ Hash =================================
+
+ /**
+ * HashGet
+ *
+ * @param key 閿� 涓嶈兘涓簄ull
+ * @param item 椤� 涓嶈兘涓簄ull
+ * @return 鍊�
+ */
+ public Object hget(String key, String item) {
+ return redisTemplate.opsForHash().get(key, item);
+ }
+
+ /**
+ * 鑾峰彇hashKey瀵瑰簲鐨勬墍鏈夐敭鍊�
+ *
+ * @param key 閿�
+ * @return 瀵瑰簲鐨勫涓敭鍊�
+ */
+ public Map<Object, Object> hmget(String key) {
+ return redisTemplate.opsForHash().entries(key);
+ }
+
+ /**
+ * HashSet
+ *
+ * @param key 閿�
+ * @param map 瀵瑰簲澶氫釜閿��
+ * @return true 鎴愬姛 false 澶辫触
+ */
+ public boolean hmset(String key, Map<String, Object> map) {
+ try {
+ redisTemplate.opsForHash().putAll(key, map);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * HashSet 骞惰缃椂闂�
+ *
+ * @param key 閿�
+ * @param map 瀵瑰簲澶氫釜閿��
+ * @param time 鏃堕棿(绉�)
+ * @return true鎴愬姛 false澶辫触
+ */
+ public boolean hmset(String key, Map<String, Object> map, long time) {
+ try {
+ redisTemplate.opsForHash().putAll(key, map);
+ if (time > 0) {
+ expire(key, time);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鍚戜竴寮爃ash琛ㄤ腑鏀惧叆鏁版嵁,濡傛灉涓嶅瓨鍦ㄥ皢鍒涘缓
+ *
+ * @param key 閿�
+ * @param item 椤�
+ * @param value 鍊�
+ * @return true 鎴愬姛 false澶辫触
+ */
+ public boolean hset(String key, String item, Object value) {
+ try {
+ redisTemplate.opsForHash().put(key, item, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鍚戜竴寮爃ash琛ㄤ腑鏀惧叆鏁版嵁,濡傛灉涓嶅瓨鍦ㄥ皢鍒涘缓
+ *
+ * @param key 閿�
+ * @param item 椤�
+ * @param value 鍊�
+ * @param time 鏃堕棿(绉�) 娉ㄦ剰:濡傛灉宸插瓨鍦ㄧ殑hash琛ㄦ湁鏃堕棿,杩欓噷灏嗕細鏇挎崲鍘熸湁鐨勬椂闂�
+ * @return true 鎴愬姛 false澶辫触
+ */
+ public boolean hset(String key, String item, Object value, long time) {
+ try {
+ redisTemplate.opsForHash().put(key, item, value);
+ if (time > 0) {
+ expire(key, time);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鍒犻櫎hash琛ㄤ腑鐨勫��
+ *
+ * @param key 閿� 涓嶈兘涓簄ull
+ * @param item 椤� 鍙互浣垮涓� 涓嶈兘涓簄ull
+ */
+ public void hdel(String key, Object... item) {
+ redisTemplate.opsForHash().delete(key, item);
+ }
+
+ /**
+ * 鍒ゆ柇hash琛ㄤ腑鏄惁鏈夎椤圭殑鍊�
+ *
+ * @param key 閿� 涓嶈兘涓簄ull
+ * @param item 椤� 涓嶈兘涓簄ull
+ * @return true 瀛樺湪 false涓嶅瓨鍦�
+ */
+ public boolean hHasKey(String key, String item) {
+ return redisTemplate.opsForHash().hasKey(key, item);
+ }
+
+ /**
+ * hash閫掑 濡傛灉涓嶅瓨鍦�,灏变細鍒涘缓涓�涓� 骞舵妸鏂板鍚庣殑鍊艰繑鍥�
+ *
+ * @param key 閿�
+ * @param item 椤�
+ * @param by 瑕佸鍔犲嚑(澶т簬0)
+ * @return
+ */
+ public double hincr(String key, String item, double by) {
+ return redisTemplate.opsForHash().increment(key, item, by);
+ }
+
+ /**
+ * hash閫掑噺
+ *
+ * @param key 閿�
+ * @param item 椤�
+ * @param by 瑕佸噺灏戣(灏忎簬0)
+ * @return
+ */
+ public double hdecr(String key, String item, double by) {
+ return redisTemplate.opsForHash().increment(key, item, -by);
+ }
+
+ //============================ set =============================
+
+ /**
+ * 鏍规嵁key鑾峰彇Set涓殑鎵�鏈夊��
+ *
+ * @param key 閿�
+ * @return
+ */
+ public Set<Object> sGet(String key) {
+ try {
+ return redisTemplate.opsForSet().members(key);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ /**
+ * 鏍规嵁value浠庝竴涓猻et涓煡璇�,鏄惁瀛樺湪
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @return true 瀛樺湪 false涓嶅瓨鍦�
+ */
+ public boolean sHasKey(String key, Object value) {
+ try {
+ return redisTemplate.opsForSet().isMember(key, value);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 灏嗘暟鎹斁鍏et缂撳瓨
+ *
+ * @param key 閿�
+ * @param values 鍊� 鍙互鏄涓�
+ * @return 鎴愬姛涓暟
+ */
+ public long sSet(String key, Object... values) {
+ try {
+ return redisTemplate.opsForSet().add(key, values);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return 0;
+ }
+ }
+
+ /**
+ * 灏唖et鏁版嵁鏀惧叆缂撳瓨
+ *
+ * @param key 閿�
+ * @param time 鏃堕棿(绉�)
+ * @param values 鍊� 鍙互鏄涓�
+ * @return 鎴愬姛涓暟
+ */
+ public long sSetAndTime(String key, long time, Object... values) {
+ try {
+ Long count = redisTemplate.opsForSet().add(key, values);
+ if (time > 0) {
+ expire(key, time);
+ }
+ return count;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return 0;
+ }
+ }
+
+ /**
+ * 鑾峰彇set缂撳瓨鐨勯暱搴�
+ *
+ * @param key 閿�
+ * @return
+ */
+ public long sGetSetSize(String key) {
+ try {
+ return redisTemplate.opsForSet().size(key);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return 0;
+ }
+ }
+
+ /**
+ * 绉婚櫎鍊间负value鐨�
+ *
+ * @param key 閿�
+ * @param values 鍊� 鍙互鏄涓�
+ * @return 绉婚櫎鐨勪釜鏁�
+ */
+ public long setRemove(String key, Object... values) {
+ try {
+ Long count = redisTemplate.opsForSet().remove(key, values);
+ return count;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return 0;
+ }
+ }
+ //===============================list=================================
+
+ /**
+ * 鑾峰彇list缂撳瓨鐨勫唴瀹�
+ *
+ * @param key 閿�
+ * @param start 寮�濮�
+ * @param end 缁撴潫 0 鍒� -1浠h〃鎵�鏈夊��
+ * @return
+ */
+ public List<Object> lGet(String key, long start, long end) {
+ try {
+ return redisTemplate.opsForList().range(key, start, end);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ /**
+ * 鑾峰彇list缂撳瓨鐨勯暱搴�
+ *
+ * @param key 閿�
+ * @return
+ */
+ public long lGetListSize(String key) {
+ try {
+ return redisTemplate.opsForList().size(key);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return 0;
+ }
+ }
+
+ /**
+ * 閫氳繃绱㈠紩 鑾峰彇list涓殑鍊�
+ *
+ * @param key 閿�
+ * @param index 绱㈠紩 index>=0鏃讹紝 0 琛ㄥご锛�1 绗簩涓厓绱狅紝渚濇绫绘帹锛沬ndex<0鏃讹紝-1锛岃〃灏撅紝-2鍊掓暟绗簩涓厓绱狅紝渚濇绫绘帹
+ * @return
+ */
+ public Object lGetIndex(String key, long index) {
+ try {
+ return redisTemplate.opsForList().index(key, index);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ /**
+ * 灏唋ist鏀惧叆缂撳瓨
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @return
+ */
+ public boolean lSet(String key, Object value) {
+ try {
+ redisTemplate.opsForList().rightPush(key, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 灏唋ist鏀惧叆缂撳瓨
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @param time 鏃堕棿(绉�)
+ * @return
+ */
+ public boolean lSet(String key, Object value, long time) {
+ try {
+ redisTemplate.opsForList().rightPush(key, value);
+ if (time > 0) {
+ expire(key, time);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 灏唋ist鏀惧叆缂撳瓨
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @return
+ */
+ public boolean lSet(String key, List<Object> value) {
+ try {
+ redisTemplate.opsForList().rightPushAll(key, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 灏唋ist鏀惧叆缂撳瓨
+ *
+ * @param key 閿�
+ * @param value 鍊�
+ * @param time 鏃堕棿(绉�)
+ * @return
+ */
+ public boolean lSet(String key, List<Object> value, long time) {
+ try {
+ redisTemplate.opsForList().rightPushAll(key, value);
+ if (time > 0) {
+ expire(key, time);
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 鏍规嵁绱㈠紩淇敼list涓殑鏌愭潯鏁版嵁
+ *
+ * @param key 閿�
+ * @param index 绱㈠紩
+ * @param value 鍊�
+ * @return
+ */
+ public boolean lUpdateIndex(String key, long index, Object value) {
+ try {
+ redisTemplate.opsForList().set(key, index, value);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 绉婚櫎N涓�间负value
+ *
+ * @param key 閿�
+ * @param count 绉婚櫎澶氬皯涓�
+ * @param value 鍊�
+ * @return 绉婚櫎鐨勪釜鏁�
+ */
+ public long lRemove(String key, long count, Object value) {
+ try {
+ Long remove = redisTemplate.opsForList().remove(key, count, value);
+ return remove;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return 0;
+ }
+ }
+
+ /**
+ * 妯$硦鏌ヨ鑾峰彇key鍊�
+ *
+ * @param pattern
+ * @return
+ */
+ public Set keys(String pattern) {
+ return redisTemplate.keys(pattern);
+ }
+
+ /**
+ * 浣跨敤Redis鐨勬秷鎭槦鍒�
+ *
+ * @param channel
+ * @param message 娑堟伅鍐呭
+ */
+ public void convertAndSend(String channel, Object message) {
+ redisTemplate.convertAndSend(channel, message);
+ }
+
+
+}
+
--
Gitblit v1.9.1