Redis增刪改查封裝
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.PostConstruct; import javax.annotation.Resource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisSentinelPool; import redis.clients.jedis.ScanParams; import redis.clients.jedis.ScanResult; @Service public class SentinelJedisUtil { private static Logger logger = LoggerFactory.getLogger(SentinelJedisUtil.class); private static SentinelJedisUtil sentinelJedisUtil; @Resource private JedisSentinelPool jedisSentinelPool; @PostConstruct public void init() { sentinelJedisUtil = this; sentinelJedisUtil.jedisSentinelPool = this.jedisSentinelPool; } *//**
- 設置一個key的過期時間(單位:秒)
- @param key
- key值
- @param seconds
- 多少秒后過期
- @return 1:設置了過期時間 0:沒有設置過期時間/不能設置過期時間
//
public static long expire(String key, int seconds) {
if (key == null || key.equals("")) {
return 0;
}
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.expire(key, seconds);
} catch (Exception ex) {
logger.error("EXPIRE error[key=" + key + " seconds=" + seconds
- "]" + ex.getMessage(), ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return 0; } *//**
- 設置一個key在某個時間點過期
- @param key
- key值
- @param unixTimestamp
- unix時間戳,從1970-01-01 00:00:00開始到現在的秒數
- @return 1:設置了過期時間 0:沒有設置過期時間/不能設置過期時間
//
public static long expireAt(String key, int unixTimestamp) {
if (key == null || key.equals("")) {
return 0;
}
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.expireAt(key, unixTimestamp);
} catch (Exception ex) {
logger.error("EXPIRE error[key=" + key + " unixTimestamp="
- unixTimestamp + "]" + ex.getMessage(), ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return 0; } *//**
- 截斷一個List
- @param key
- 列表key
- @param start
- 開始位置 從0開始
- @param end
- 結束位置
- @return 狀態碼
//
public static String trimList(String key, long start, long end) {
if (key == null || key.equals("")) {
return "-";
}
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.ltrim(key, start, end);
} catch (Exception ex) {
logger.error("LTRIM 出錯[key=" + key + " start=" + start + " end="
- end + "]" + ex.getMessage(), ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return "-"; } *//**
- 檢查Set長度
- @param key
- @return // public static long countSet(String key) { if (key == null) { return 0; } Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); return jedis.scard(key); } catch (Exception ex) { logger.error("countSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return 0; } *//**
- 添加到Set中(同時設置過期時間)
- @param key
- key值
- @param seconds
- 過期時間 單位s
- @param value
- @return // public static boolean addSet(String key, int seconds, String... value) { boolean result = addSet(key, value); if (result) { long i = expire(key, seconds); return i == 1; } return false; } *//**
- 添加到Set中
- @param key
- @param value
- @return // public static boolean addSet(String key, String... value) { if (key == null || value == null) { return false; } Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); jedis.sadd(key, value); return true; } catch (Exception ex) { logger.error("setList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- @param key
- @param value
- @return 判斷值是否包含在set中 // public static boolean containsInSet(String key, String value) { if (key == null || value == null) { return false; } Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); return jedis.sismember(key, value); } catch (Exception ex) { logger.error("setList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- 獲取Set
- @param key
- @return // public static Set<String> getSet(String key) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); return jedis.smembers(key); } catch (Exception ex) { logger.error("getList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 從set中刪除value
- @param key
- @return // public static boolean removeSetValue(String key, String... value) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); jedis.srem(key, value); return true; } catch (Exception ex) { logger.error("getList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- 從list中刪除value 默認count 1
- @param key
- @param values
- 值list
- @return // public static int removeListValue(String key, List<String> values) { return removeListValue(key, 1, values); } *//**
- 從list中刪除value
- @param key
- @param count
- @param values
- 值list
- @return // public static int removeListValue(String key, long count, List<String> values) { int result = 0; if (values != null && values.size() > 0) { for (String value : values) { if (removeListValue(key, count, value)) { result++; } } } return result; } *//**
- 從list中刪除value
- @param key
- @param count
- 要刪除個數
- @param value
- @return // public static boolean removeListValue(String key, long count, String value) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); jedis.lrem(key, count, value); return true; } catch (Exception ex) { logger.error("getList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- 截取List
- @param key
- @param start
- 起始位置
- @param end
- 結束位置
- @return
//
public static List<String> rangeList(String key, long start, long end) {
if (key == null || key.equals("")) {
return null;
}
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.lrange(key, start, end);
} catch (Exception ex) {
logger.error("rangeList 出錯[key=" + key + " start=" + start
- " end=" + end + "]" + ex.getMessage(), ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 檢查List長度
- @param key
- @return // public static long countList(String key) { if (key == null) { return 0; } Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); return jedis.llen(key); } catch (Exception ex) { logger.error("countList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return 0; } *//**
- 添加到List中(同時設置過期時間)
- @param key
- key值
- @param seconds
- 過期時間 單位s
- @param value
- @return // public static boolean addList(String key, int seconds, String... value) { boolean result = addList(key, value); if (result) { long i = expire(key, seconds); return i == 1; } return false; } *//**
- 添加到List
- @param key
- @param value
- @return // public static boolean addList(String key, String... value) { if (key == null || value == null) { return false; } Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); jedis.lpush(key, value); return true; } catch (Exception ex) { logger.error("setList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- 添加到List(只新增)
- @param key
- @param value
- @return // public static boolean addList(String key, List<String> list) { if (key == null || list == null || list.size() == 0) { return false; } for (String value : list) { addList(key, value); } return true; } *//**
- 獲取List
- @param key
- @return // public static List<String> getList(String key) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); return jedis.lrange(key, 0, -1); } catch (Exception ex) { logger.error("getList error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 設置HashSet對象
- @param domain
- 域名
- @param key
- 鍵值
- @param value
- Json String or String value
- @return // public static boolean setHSet(String domain, String key, String value) { if (value == null) return false; Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); jedis.hset(domain, key, value); return true; } catch (Exception ex) { logger.error("setHSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- 獲得HashSet對象
- @param domain
- 域名
- @param key
- 鍵值
- @return Json String or String value // public static String getHSet(String domain, String key) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); return jedis.hget(domain, key); } catch (Exception ex) { logger.error("getHSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 刪除HashSet對象
- @param domain
- 域名
- @param key
- 鍵值
- @return 刪除的記錄數 // public static long delHSet(String domain, String key) { Jedis jedis = null; long count = 0; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); count = jedis.hdel(domain, key); } catch (Exception ex) { logger.error("delHSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return count; } *//**
- 刪除HashSet對象
- @param domain
- 域名
- @param key
- 鍵值
- @return 刪除的記錄數 // public static long delHSet(String domain, String... key) { Jedis jedis = null; long count = 0; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); count = jedis.hdel(domain, key); } catch (Exception ex) { logger.error("delHSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return count; } *//**
- 判斷key是否存在
- @param domain
- 域名
- @param key
- 鍵值
- @return // public static boolean existsHSet(String domain, String key) { Jedis jedis = null; boolean isExist = false; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); isExist = jedis.hexists(domain, key); } catch (Exception ex) { logger.error("existsHSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return isExist; } *//**
- 全局掃描hset
- @param match
- field匹配模式
- @return // public static List<Map.Entry<String, String>> scanHSet(String domain, String match) { Jedis jedis = null; try { int cursor = 0; jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); ScanParams scanParams = new ScanParams(); scanParams.match(match); ScanResult<Map.Entry<String, String>> scanResult; List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(); do { scanResult = jedis.hscan(domain, String.valueOf(cursor), scanParams); list.addAll(scanResult.getResult()); cursor = Integer.parseInt(scanResult.getStringCursor()); } while (cursor > 0); return list; } catch (Exception ex) { logger.error("scanHSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 全局掃描hset
- @param match
- field匹配模式
- @return // public static Set<String> scan( String match) { Jedis jedis = null; try { int cursor = 0; jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); ScanParams scanParams = new ScanParams(); scanParams.match(match); ScanResult<String> scanResult; Set<String> retSet = new HashSet<String>(); do { scanResult = jedis.scan(String.valueOf(cursor), scanParams); retSet.addAll(scanResult.getResult()); cursor = Integer.parseInt(scanResult.getStringCursor()); } while (cursor > 0); return retSet; } catch (Exception ex) { logger.error("scanHSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 返回 domain 指定的哈希集中所有字段的value值
- @param domain
- @return // public static List<String> hvals(String domain) { Jedis jedis = null; List<String> retList = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); retList = jedis.hvals(domain); } catch (Exception ex) { logger.error("hvals error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return retList; } *//**
- 返回 domain 指定的哈希集中所有字段的key值
- @param domain
- @return // public static Set<String> hkeys(String domain) { Jedis jedis = null; Set<String> retList = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); retList = jedis.hkeys(domain); } catch (Exception ex) { logger.error("hkeys error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return retList; } *//**
- 返回 domain 指定的哈希key值總數
- @param domain
- @return // public static long lenHset(String domain) { Jedis jedis = null; long retList = 0; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); retList = jedis.hlen(domain); } catch (Exception ex) { logger.error("hkeys error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return retList; } *//**
- 設置排序集合
- @param key
- @param score
- @param value
- @return // public static boolean setSortedSet(String key, long score, String value) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); jedis.zadd(key, score, value); return true; } catch (Exception ex) { logger.error("setSortedSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- 獲得排序集合
- @param key
- @param startScore
- @param endScore
- @param orderByDesc
- @return // public static Set<String> getSoredSet(String key, long startScore, long endScore, boolean orderByDesc) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); if (orderByDesc) { return jedis.zrevrangeByScore(key, endScore, startScore); } else { return jedis.zrangeByScore(key, startScore, endScore); } } catch (Exception ex) { logger.error("getSoredSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 計算排序長度
- @param key
- @param startScore
- @param endScore
- @return // public static long countSoredSet(String key, long startScore, long endScore) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); Long count = jedis.zcount(key, startScore, endScore); return count == null ? 0L : count; } catch (Exception ex) { logger.error("countSoredSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return 0L; } *//**
- 刪除排序集合
- @param key
- @param value
- @return // public static boolean delSortedSet(String key, String value) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); long count = jedis.zrem(key, value); return count > 0; } catch (Exception ex) { logger.error("delSortedSet error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return false; } *//**
- 獲得排序集合
- @param key
- @param startRange
- @param endRange
- @param orderByDesc
- @return // public static Set<String> getSoredSetByRange(String key, int startRange, int endRange, boolean orderByDesc) { Jedis jedis = null; try { jedis = sentinelJedisUtil.jedisSentinelPool.getResource(); if (orderByDesc) { return jedis.zrevrange(key, startRange, endRange); } else { return jedis.zrange(key, startRange, endRange); } } catch (Exception ex) { logger.error("getSoredSetByRange error.", ex); returnBrokenResource(jedis); } finally { returnResource(jedis); } return null; } *//**
- 獲得排序打分
- @param key
- @return
//
public static Double getScore(String key, String member) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.zscore(key, member);
} catch (Exception ex) {
logger.error("getSoredSet error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return null;
}
public static boolean set(String key, String value, int second) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
jedis.setex(key, second, value);
return true;
} catch (Exception ex) {
logger.error("set error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return false;
}
public static boolean set(String key, String value) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
jedis.set(key, value);
return true;
} catch (Exception ex) {
logger.error("set error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return false;
}
public static String get(String key, String defaultValue) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.get(key) == null ? defaultValue : jedis
.get(key);
} catch (Exception ex) {
logger.error("get error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return defaultValue;
}
public static String get(String key) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.get(key);
} catch (Exception ex) {
logger.error("get error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return null;
}
public static boolean del(String key) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
jedis.del(key);
return true;
} catch (Exception ex) {
logger.error("del error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return false;
}
public static long incr(String key) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.incr(key);
} catch (Exception ex) {
logger.error("incr error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return 0;
}
public static long decr(String key) {
Jedis jedis = null;
try {
jedis = sentinelJedisUtil.jedisSentinelPool.getResource();
return jedis.decr(key);
} catch (Exception ex) {
logger.error("incr error.", ex);
returnBrokenResource(jedis);
} finally {
returnResource(jedis);
}
return 0;
}
private static void returnBrokenResource(Jedis jedis) {
try {
sentinelJedisUtil.jedisSentinelPool.returnBrokenResource(jedis);
} catch (Exception e) {
logger.error("returnBrokenResource error.", e);
}
}
private static void returnResource(Jedis jedis) {
try {
sentinelJedisUtil.jedisSentinelPool.returnResource(jedis);
} catch (Exception e) {
logger.error("returnResource error.", e);
}
}</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!