Java實現(xiàn)RedisUtils操作五大集合(增刪改查)
前排提示,我在這個工具類加了@Component注解,如果在springboot的項目使用,記得通過@Autowired注入使用。
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.*;import org.springframework.stereotype.Component;import java.io.Serializable;import java.util.List;import java.util.Set; @Componentpublic class RedisUtils { @Autowired private RedisTemplate redisTemplate; /** * 寫入String型 [ 鍵,值] * * @param key * @param value * @return */ public boolean set(final String key, Object value) {boolean result = false;try { ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue(); operations.set(key, value); result = true;} catch (Exception e) { e.printStackTrace();}return result; } /** * 寫入String型,順便帶有過期時間 [ 鍵,值] * * @param key * @param value * @return */ public boolean setWithTime(final String key, Object value,int seconds) {boolean result = false;try { ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue(); operations.set(key, value,seconds, TimeUnit.SECONDS); result = true;} catch (Exception e) { e.printStackTrace();}return result; } /** * 批量刪除對應(yīng)的value * * @param keys */ public void remove(final String... keys) {for (String key : keys) { remove(key);} } /** * 批量刪除key * * @param pattern */ public void removePattern(final String pattern) {Set<Serializable> keys = redisTemplate.keys(pattern);if (keys.size() > 0) redisTemplate.delete(keys); } /** * 刪除對應(yīng)的value * * @param key */ public void remove(final String key) {if (exists(key)) { redisTemplate.delete(key);} } /** * 判斷緩存中是否有對應(yīng)的value * * @param key * @return */ public boolean exists(final String key) {return redisTemplate.hasKey(key); } /** * 讀取緩存 * * @param key * @return */ public Object get(final String key) {Object result = null;ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();result = operations.get(key);return result; } /** * 哈希 添加 * hash 一個鍵值(key->value)對集合 * * @param key * @param hashKey * @param value */ public void hmSet(String key, Object hashKey, Object value) { HashOperations<String, Object, Object> hash = redisTemplate.opsForHash(); hash.put(key, hashKey, value); } /** * Hash獲取數(shù)據(jù) * * @param key * @param hashKey * @return */ public Object hmGet(String key, Object hashKey) {HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();return hash.get(key, hashKey); } /** * 列表添加 * list:lpush key value1 * * @param k * @param v */ public void lPush(String k, Object v) {ListOperations<String, Object> list = redisTemplate.opsForList();list.rightPush(k, v); } /** * 列表List獲取 * lrange: key 0 10 (讀取的個數(shù) 從0開始 讀取到下標為10 的數(shù)據(jù)) * * @param k * @param l * @param l1 * @return */ public List<Object> lRange(String k, long l, long l1) {ListOperations<String, Object> list = redisTemplate.opsForList();return list.range(k, l, l1); } /** * Set集合添加 * * @param key * @param value */ public void add(String key, Object value) {SetOperations<String, Object> set = redisTemplate.opsForSet();set.add(key, value); } /** * Set 集合獲取 * * @param key * @return */ public Set<Object> setMembers(String key) { SetOperations<String, Object> set = redisTemplate.opsForSet(); return set.members(key); } /** * Sorted set :有序集合添加 * * @param key * @param value * @param scoure */ public void zAdd(String key, Object value, double scoure) {ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();zset.add(key, value, scoure); } /** * Sorted set:有序集合獲取 * * @param key * @param scoure * @param scoure1 * @return */ public Set<Object> rangeByScore(String key, double scoure, double scoure1) { ZSetOperations<String, Object> zset = redisTemplate.opsForZSet(); return zset.rangeByScore(key, scoure, scoure1); } /** * 根據(jù)key獲取Set中的所有值 * * @param key 鍵 * @return */ public Set<Integer> sGet(String key) {try { return redisTemplate.opsForSet().members(key);} catch (Exception e) { e.printStackTrace(); return null;} } /** * 根據(jù)value從一個set中查詢,是否存在 * * @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;} } }
到此這篇關(guān)于Java實現(xiàn)RedisUtils操作五大集合(增刪改查)的文章就介紹到這了,更多相關(guān)Java RedisUtils操作內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項目的過程2. XML入門的常見問題(二)3. 無線標記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁4. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析5. SharePoint Server 2019新特性介紹6. html清除浮動的6種方法示例7. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp8. ASP中常用的22個FSO文件操作函數(shù)整理9. .Net core 的熱插拔機制的深入探索及卸載問題求救指南10. 讀大數(shù)據(jù)量的XML文件的讀取問題
