最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis工具類封裝RedisUtils的使用示例

 更新時(shí)間:2022年03月10日 11:06:17   作者:ye17186  
本文主要介紹了Redis工具類封裝RedisUtils的使用示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

此RedisUtil工具類的功能:

直接使用此RedisUtil工具類的所需條件:

  • 項(xiàng)目基于SpringBoot。
  • pom.xml中需要引入依賴spring-boot-starter-data-redis。
  • pom.xml中需要引入依賴lombok。
  • pom.xml中需要引入依賴fastjson。

注:其中第3、4點(diǎn)不是必須的,在此工具類中,第3、4點(diǎn)只是為了方便記錄日志而已。
注:當(dāng)然,如果是非SpringBoot的項(xiàng)目,那么也可以通過xml配置等方式,來使用此工具類,自行摸索吧。

SpringBoot項(xiàng)目集成Redis相當(dāng)簡(jiǎn)單,只需要pom中加入對(duì)應(yīng)依賴

<dependency>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

yml中,配置好spring.redis.host,spring.redis.port即可。

具體如何封裝,直接上代碼。

/**
 * Redis工具類,使用之前請(qǐng)確保RedisTemplate成功注入
 *
 * @author ye17186
 * @version 2019/2/22 10:48
 */
public class RedisUtils {
 
    private RedisUtils() {
    }
 
    @SuppressWarnings("unchecked")
    private static RedisTemplate<String, Object> redisTemplate = SpringUtils
        .getBean("redisTemplate", RedisTemplate.class);
 
    /**
     * 設(shè)置有效時(shí)間
     *
     * @param key Redis鍵
     * @param timeout 超時(shí)時(shí)間
     * @return true=設(shè)置成功;false=設(shè)置失敗
     */
    public static boolean expire(final String key, final long timeout) {
 
        return expire(key, timeout, TimeUnit.SECONDS);
    }
 
    /**
     * 設(shè)置有效時(shí)間
     *
     * @param key Redis鍵
     * @param timeout 超時(shí)時(shí)間
     * @param unit 時(shí)間單位
     * @return true=設(shè)置成功;false=設(shè)置失敗
     */
    public static boolean expire(final String key, final long timeout, final TimeUnit unit) {
 
        Boolean ret = redisTemplate.expire(key, timeout, unit);
        return ret != null && ret;
    }
 
    /**
     * 刪除單個(gè)key
     *
     * @param key 鍵
     * @return true=刪除成功;false=刪除失敗
     */
    public static boolean del(final String key) {
 
        Boolean ret = redisTemplate.delete(key);
        return ret != null && ret;
    }
 
    /**
     * 刪除多個(gè)key
     *
     * @param keys 鍵集合
     * @return 成功刪除的個(gè)數(shù)
     */
    public static long del(final Collection<String> keys) {
 
        Long ret = redisTemplate.delete(keys);
        return ret == null ? 0 : ret;
    }
 
    /**
     * 存入普通對(duì)象
     *
     * @param key Redis鍵
     * @param value 值
     */
    public static void set(final String key, final Object value) {
 
        redisTemplate.opsForValue().set(key, value, 1, TimeUnit.MINUTES);
    }
 
    // 存儲(chǔ)普通對(duì)象操作
 
    /**
     * 存入普通對(duì)象
     *
     * @param key 鍵
     * @param value 值
     * @param timeout 有效期,單位秒
     */
    public static void set(final String key, final Object value, final long timeout) {
 
        redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
    }
 
    /**
     * 獲取普通對(duì)象
     *
     * @param key 鍵
     * @return 對(duì)象
     */
    public static Object get(final String key) {
 
        return redisTemplate.opsForValue().get(key);
    }
 
    // 存儲(chǔ)Hash操作
 
    /**
     * 往Hash中存入數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param hKey Hash鍵
     * @param value 值
     */
    public static void hPut(final String key, final String hKey, final Object value) {
 
        redisTemplate.opsForHash().put(key, hKey, value);
    }
 
    /**
     * 往Hash中存入多個(gè)數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param values Hash鍵值對(duì)
     */
    public static void hPutAll(final String key, final Map<String, Object> values) {
 
        redisTemplate.opsForHash().putAll(key, values);
    }
 
    /**
     * 獲取Hash中的數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param hKey Hash鍵
     * @return Hash中的對(duì)象
     */
    public static Object hGet(final String key, final String hKey) {
 
        return redisTemplate.opsForHash().get(key, hKey);
    }
 
    /**
     * 獲取多個(gè)Hash中的數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param hKeys Hash鍵集合
     * @return Hash對(duì)象集合
     */
    public static List<Object> hMultiGet(final String key, final Collection<Object> hKeys) {
 
        return redisTemplate.opsForHash().multiGet(key, hKeys);
    }
 
    // 存儲(chǔ)Set相關(guān)操作
 
    /**
     * 往Set中存入數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param values 值
     * @return 存入的個(gè)數(shù)
     */
    public static long sSet(final String key, final Object... values) {
        Long count = redisTemplate.opsForSet().add(key, values);
        return count == null ? 0 : count;
    }
 
    /**
     * 刪除Set中的數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param values 值
     * @return 移除的個(gè)數(shù)
     */
    public static long sDel(final String key, final Object... values) {
        Long count = redisTemplate.opsForSet().remove(key, values);
        return count == null ? 0 : count;
    }
 
    // 存儲(chǔ)List相關(guān)操作
 
    /**
     * 往List中存入數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param value 數(shù)據(jù)
     * @return 存入的個(gè)數(shù)
     */
    public static long lPush(final String key, final Object value) {
        Long count = redisTemplate.opsForList().rightPush(key, value);
        return count == null ? 0 : count;
    }
 
    /**
     * 往List中存入多個(gè)數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param values 多個(gè)數(shù)據(jù)
     * @return 存入的個(gè)數(shù)
     */
    public static long lPushAll(final String key, final Collection<Object> values) {
        Long count = redisTemplate.opsForList().rightPushAll(key, values);
        return count == null ? 0 : count;
    }
 
    /**
     * 往List中存入多個(gè)數(shù)據(jù)
     *
     * @param key Redis鍵
     * @param values 多個(gè)數(shù)據(jù)
     * @return 存入的個(gè)數(shù)
     */
    public static long lPushAll(final String key, final Object... values) {
        Long count = redisTemplate.opsForList().rightPushAll(key, values);
        return count == null ? 0 : count;
    }
 
    /**
     * 從List中獲取begin到end之間的元素
     *
     * @param key Redis鍵
     * @param start 開始位置
     * @param end 結(jié)束位置(start=0,end=-1表示獲取全部元素)
     * @return List對(duì)象
     */
    public static List<Object> lGet(final String key, final int start, final int end) {
        return redisTemplate.opsForList().range(key, start, end);
    }
}

這樣就可以在代碼中隨時(shí)隨地的使用了

    @GetMapping("/test")
    public ApiResp test() {
        RedisUtils.set("key", "value");
        RedisUtils.get("key");
        return ApiResp.retOK();
    }

使用該工具類有一個(gè)小前提,SpringUtils中必須完成ApplicationContext的注入,注入方式有很多,此處就不表了

到此這篇關(guān)于Redis工具類封裝RedisUtils的使用示例的文章就介紹到這了,更多相關(guān)Redis工具類封裝RedisUtils內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 完美判斷中文字符的方法

    Java 完美判斷中文字符的方法

    Java判斷一個(gè)字符串是否有中文一般情況是利用Unicode編碼正則來做判斷,但是其實(shí)這個(gè)區(qū)間來判斷中文不是非常精確,以下是比較完善的判斷方法
    2013-02-02
  • Spring?Boot?Nacos?實(shí)現(xiàn)不停服發(fā)布過程詳解

    Spring?Boot?Nacos?實(shí)現(xiàn)不停服發(fā)布過程詳解

    這篇文章主要為大家介紹了Spring?Boot?Nacos實(shí)現(xiàn)不停服發(fā)布過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Spring零基礎(chǔ)到進(jìn)階之鴻蒙開篇

    Spring零基礎(chǔ)到進(jìn)階之鴻蒙開篇

    Spring框架是一個(gè)開放源代碼的J2EE應(yīng)用程序框架,由Rod Johnson發(fā)起,是針對(duì)bean的生命周期進(jìn)行管理的輕量級(jí)容器(lightweight container)。 Spring解決了開發(fā)者在J2EE開發(fā)中遇到的許多常見的問題,提供了功能強(qiáng)大IOC、AOP及Web MVC等功能
    2022-07-07
  • idea啟動(dòng)springmvc項(xiàng)目時(shí)報(bào)找不到類的解決方法

    idea啟動(dòng)springmvc項(xiàng)目時(shí)報(bào)找不到類的解決方法

    這篇文章主要介紹了idea啟動(dòng)springmvc項(xiàng)目時(shí)報(bào)找不到類的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot使用minio及配置代碼

    SpringBoot使用minio及配置代碼

    MinIO是一個(gè)非常輕量的服務(wù),可以很簡(jiǎn)單的和其他應(yīng)用的結(jié)合,類似?NodeJS,?Redis?或者?MySQL。本文重點(diǎn)給大家介紹SpringBoot使用minio及配置代碼,感興趣的朋友一起看看吧
    2022-02-02
  • SpringBoot整合Security實(shí)現(xiàn)權(quán)限控制框架(案例詳解)

    SpringBoot整合Security實(shí)現(xiàn)權(quán)限控制框架(案例詳解)

    Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框,是一個(gè)重量級(jí)的安全管理框架,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-08-08
  • 一文詳解Java二分查找算法

    一文詳解Java二分查找算法

    二分查找(binary search),也稱折半搜索,是一種在有序數(shù)組中查找某一特定元素的搜索算法,接下來就來給大家講講都有哪些查找算法,以及經(jīng)典的二分查找法該如何實(shí)現(xiàn),需要的朋友可以參考下
    2023-07-07
  • 如何用SpringBoot 進(jìn)行測(cè)試

    如何用SpringBoot 進(jìn)行測(cè)試

    這篇文章主要介紹了如何用SpringBoot 進(jìn)行測(cè)試,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • Java實(shí)現(xiàn)各種文件類型轉(zhuǎn)換方式(收藏)

    Java實(shí)現(xiàn)各種文件類型轉(zhuǎn)換方式(收藏)

    這篇文章主要介紹了Java?各種文件類型轉(zhuǎn)換的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 聊聊BeanUtils.copyProperties和clone()方法的區(qū)別

    聊聊BeanUtils.copyProperties和clone()方法的區(qū)別

    這篇文章主要介紹了聊聊BeanUtils.copyProperties和clone()方法的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論

宜川县| 开封市| 昔阳县| 洪雅县| 永康市| 沂南县| 连云港市| 商南县| 喀喇沁旗| 当涂县| 内丘县| 冀州市| 密云县| 秦皇岛市| 通辽市| 亚东县| 兴义市| 措美县| 徐闻县| 衢州市| 仁布县| 武冈市| 乌拉特前旗| 漳州市| 天津市| 乐清市| 合阳县| 达拉特旗| 都匀市| 葫芦岛市| 广安市| 汉沽区| 登封市| 洛南县| 宁城县| 芜湖县| 钦州市| 毕节市| 扎鲁特旗| 黎平县| 会宁县|