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