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

Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法

 更新時間:2023年04月10日 15:43:09   作者:StudyJavaWeb  
本文主要介紹了Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在學習SpringCloud的過程中,總需要記錄一下學習的過程,今天記錄一下StringRedisTemplate和RedisTemplate的區(qū)別及使用方法,使用時只需使用maven依賴包spring-boot-starter-data-redis即可,然后在service中注入StringRedisTemplate或者RedisTemplate即可

首先如下圖所示StringRedisTemplate繼承了RedisTemplate,所以兩者對Redis的操作方法具有相同之處

兩者的數(shù)據(jù)是不共通的;也就是說StringRedisTemplate只能管理StringRedisTemplate里面的數(shù)據(jù),RedisTemplate只能管理RedisTemplate中的數(shù)據(jù)。

其實他們兩者之間的區(qū)別主要在于他們使用的序列化類:

  • RedisTemplate使用的是JdkSerializationRedisSerializer 存入數(shù)據(jù)會將數(shù)據(jù)先序列化成字節(jié)數(shù)組然后在存入Redis數(shù)據(jù)庫。
  • StringRedisTemplate使用的是StringRedisSerializer

使用時注意事項:

當你的redis數(shù)據(jù)庫里面本來存的是字符串數(shù)據(jù)或者你要存取的數(shù)據(jù)就是字符串類型數(shù)據(jù)的時候,那么你就使用StringRedisTemplate即可。

但是如果你的數(shù)據(jù)是復雜的對象類型,而取出的時候又不想做任何的數(shù)據(jù)轉換,直接從Redis里面取出一個對象,那么使用RedisTemplate是更好的選擇。

RedisTemplate使用時常見問題:

redisTemplate 中存取數(shù)據(jù)都是字節(jié)數(shù)組。當redis中存入的數(shù)據(jù)是可讀形式而非字節(jié)數(shù)組時,使用redisTemplate取值的時候會無法獲取導出數(shù)據(jù),獲得的值為null??梢允褂肧tringRedisTemplate 試試。

StringRedisTemplate對于Redis的操作方法:

StringRedisTemplate.opsForValue().* //操作String字符串類型
StringRedisTemplate.delete(key/collection) //根據(jù)key/keys刪除
StringRedisTemplate.opsForList().*  //操作List類型
StringRedisTemplate.opsForHash().*  //操作Hash類型
StringRedisTemplate.opsForSet().*  //操作set類型
StringRedisTemplate.opsForZSet().*  //操作有序set

接口實現(xiàn)代碼如下:

package com.cloud.spring.demo.service.impl;

import com.cloud.spring.demo.service.RedisTestService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Package: com.cloud.spring.demo.service.impl
 * @ClassName: RedisTestServiceImpl
 * @Author: zhougaoyang
 * @Description: redis服務測試接口實現(xiàn)
 * @Date: 2019/4/27 10:16
 * @Version: 1.0
 */
@Service
public class RedisTestServiceImpl implements RedisTestService {
    private static final Logger log = LoggerFactory.getLogger(RedisTestService.class);

    @Autowired
    private StringRedisTemplate redisTemplate;


    /**
     * @Description 獲取String類型的value
     * @param name
     * @return
     */
    @Override
    public String findName(String name) {
        if (name==null){
            log.error("===============key為null======================================================");
        }
        return redisTemplate.opsForValue().get(name);
    }

    /**
     * @Description 添加String類型的key-value
     * @param name
     * @param value
     * @return
     */
    @Override
    public String setNameValue(String name, String value) {
        log.info("==================添加String類型的key-value========================================");
        redisTemplate.opsForValue().set(name,value);
        return name;
    }

    /**
     * @Description 根據(jù)key刪除redis的數(shù)據(jù)
     * @param name
     * @return
     */
    @Override
    public String delNameValue(String name) {
        redisTemplate.delete(name);
        return name;
    }

    /**
     * @Description 根據(jù)key獲取list類型的value(范圍)
     * @param key
     * @return
     */
    @Override
    public List<String> findList(String key,int start,int end) {
        log.info("=====================按照范圍查詢redis中List類型=======================================");
        return redisTemplate.opsForList().range(key,start,end);
    }

    /**
     * @Description 插入多條數(shù)據(jù)
     * @param key
     * @param value
     * @return
     */
    @Override
    public long setList(String key, List<String> value) {
        log.info("=========================redis List type insert ======================================");
        return redisTemplate.opsForList().rightPushAll(key, value);
    }

    /**
     * @Description 獲取list最新記錄(右側)
     * @param key
     * @return
     */
    @Override
    public String findLatest(String key) {
        log.info("=============================rides List latest rigth==================================");
        return redisTemplate.opsForList().index(key,redisTemplate.opsForList().size(key)-1);
    }

    /**
     * @Description 查詢hash
     * @param key
     * @return
     */
    @Override
    public Map<Object, Object> findHash(String key) {
        log.info("===================================redis hash =========================================");
        return redisTemplate.opsForHash().entries(key);
    }

    /**
     * @Description 查詢hash中所有的key
     * @param key
     * @return
     */
    @Override
    public Set<Object> findHashKeys(String key) {
        log.info("====================================== All keys of hash ===============================");
        return redisTemplate.opsForHash().keys(key);
    }

    /**
     * @Description 查詢hash中所有的value
     * @param key
     * @return
     */
    @Override
    public List<Object> findHashValues(String key) {
        log.info("===================================== All values of hash ==============================");
        return redisTemplate.opsForHash().values(key);
    }

    /**
     * @Desscription 插入hash數(shù)據(jù)
     * @param key
     * @param map
     * @return
     */
    @Override
    public long insertHash(String key, Map<String, Object> map) {
        log.info("====================================== insert hashes into redis ========================");
        redisTemplate.opsForHash().putAll(key,map);
        return map.size();
    }
}

到此這篇關于Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法的文章就介紹到這了,更多相關StringRedisTemplate和RedisTemplate區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • IDEA使用SpringAssistant插件創(chuàng)建SpringCloud項目

    IDEA使用SpringAssistant插件創(chuàng)建SpringCloud項目

    IDEA 功能強大,可以用來高效的開發(fā)應該程序。它還支持第三方插件、用戶可以根據(jù)需要添加自己喜歡的插件。下面介紹如何使用 IDEA 創(chuàng)建 Spring Cloud 項目
    2021-06-06
  • 解決java.lang.NullPointerException問題(空指針異常)

    解決java.lang.NullPointerException問題(空指針異常)

    本文詳細介紹了Java中的NullPointerException異常及其常見原因,包括對象引用為null、數(shù)組元素為null和方法返回null等情況,文章還提供了幾種解決空指針異常的方法,如使用if語句、Optional類、三元運算符和異常處理等,通過這些方法,可以有效地避免空指針異常
    2025-02-02
  • Redis Java Lettuce驅動框架原理解析

    Redis Java Lettuce驅動框架原理解析

    這篇文章主要介紹了Redis Java Lettuce驅動框架原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • java hasNextInt判斷是否為數(shù)字的方法

    java hasNextInt判斷是否為數(shù)字的方法

    今天小編就為大家分享一篇java hasNextInt判斷是否為數(shù)字的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Java實現(xiàn)后臺發(fā)送及接收json數(shù)據(jù)的方法示例

    Java實現(xiàn)后臺發(fā)送及接收json數(shù)據(jù)的方法示例

    這篇文章主要介紹了Java實現(xiàn)后臺發(fā)送及接收json數(shù)據(jù)的方法,結合實例形式分析了java針對json格式數(shù)據(jù)的傳輸與操作相關技巧,需要的朋友可以參考下
    2018-12-12
  • 一篇文章讓你學會Java的輸入與輸出

    一篇文章讓你學會Java的輸入與輸出

    這篇文章主要介紹了Java輸入與輸出的相關資料,包括使用System.out.println()、System.out.printf()和System.out.print()進行輸出,以及使用Scanner類和System.in.read()方法進行輸入,需要的朋友可以參考下
    2025-03-03
  • Java?遠程調用失敗重試的操作方法

    Java?遠程調用失敗重試的操作方法

    這篇文章主要介紹了Java?遠程調用失敗重試的操作方法,今天給大家介紹了一下?Spring??的?@Retryable?注解使用,并通過幾個 demo 來帶大家編寫了自己重試攔截器以及回滾方法,需要的朋友可以參考下
    2022-09-09
  • Java發(fā)送form-data請求的實例代碼

    Java發(fā)送form-data請求的實例代碼

    在Java中發(fā)送form-data請求,可以使用Apache?HttpClient或OkHttp這樣的HTTP客戶端庫來發(fā)送請求,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-10-10
  • SpringBoot接收參數(shù)的8種方式示例詳解

    SpringBoot接收參數(shù)的8種方式示例詳解

    這篇文章主要介紹了SpringBoot接收參數(shù)的8種方式,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Java 十大排序算法之選擇排序刨析

    Java 十大排序算法之選擇排序刨析

    選擇排序是一種簡單直觀的排序算法,無論什么數(shù)據(jù)進去都是 O(n&sup2;) 的時間復雜度。所以用到它的時候,數(shù)據(jù)規(guī)模越小越好。唯一的好處可能就是不占用額外的內存空間了吧
    2021-11-11

最新評論

涞源县| 城口县| 彰武县| 常山县| 县级市| 平遥县| 香港| 沙雅县| 华池县| 县级市| 彝良县| 镇康县| 绥宁县| 安泽县| 青铜峡市| 原平市| 曲松县| 台江县| 宣恩县| 安图县| 织金县| 依安县| 温泉县| 上饶市| 和平区| 常州市| 广南县| 隆尧县| 宁远县| 玉树县| 阜南县| 沐川县| 苗栗县| 泊头市| 宁海县| 咸丰县| 全州县| 普格县| 禄丰县| 隆尧县| 玉屏|