From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 21 十二月 2024 18:40:43 +0800
Subject: [PATCH] 新建德森项目分支

---
 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