<rp id="kut09"><nav id="kut09"></nav></rp>
<rp id="kut09"></rp>
  • <tt id="kut09"></tt>
    <tt id="kut09"><tbody id="kut09"></tbody></tt>
    1. <u id="kut09"></u>
    2. <tt id="kut09"><noscript id="kut09"></noscript></tt>
    3. spring boot整合redis實現RedisTemplate三分鐘快速入門

       更新時間:2020年12月29日 11:57:33   作者:程序員小哲  
      這篇文章主要介紹了spring boot整合redis實現RedisTemplate三分鐘快速入門,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

      引入依賴

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

      RedisTemplate五種數據結構的操作

      • redisTemplate.opsForValue(); //操作字符串
      • redisTemplate.opsForHash(); //操作hash
      • redisTemplate.opsForList(); //操作list
      • redisTemplate.opsForSet(); //操作set
      • redisTemplate.opsForZSet(); //操作有序zset

      RedisTemplate方法講解

      判斷key是否存在

       /**
         * 判斷key是否存在
         */
        @GetMapping("haskey")
        public boolean hasKey(String key) {
          return redisTemplate.hasKey(key);
        }
      

      獲取指定的key的失效時間

       /**
         * 指定key的失效時間
         */
        @GetMapping("expire")
        public void expire(String key, long time) {
          //參數一:key
          //參數二:睡眠時間
          //參數三:睡眠時間單位 TimeUnit.DAYS 天 TimeUnit.HOURS 小時 。。。
          redisTemplate.expire(key, time, TimeUnit.MINUTES);
        }
      

      根據key獲取過期時間

       /**
         * 根據key獲取過期時間
         */
        @GetMapping("getexpire")
        public long getExpire(String key) {
          Long expire = redisTemplate.getExpire(key);
          return expire;
        }
      

      根據key刪除reids中緩存數據

       /**
         * 根據key刪除reids中緩存數據
         */
        @GetMapping("delredisbykey")
        public void delete(String key) {
          redisTemplate.delete(key);
        }
      

      保存和讀取String

       /**
         * 保存和讀取String
         */
        @GetMapping("stringredisdemo")
        public String stringredisdemo() {
          //設置過期時間為1分鐘
          redisTemplate.opsForValue().set("key1", "value1", 1, TimeUnit.MINUTES);
          redisTemplate.opsForValue().set("key2", "value2");
          redisTemplate.opsForValue().set("key3", "value3");
          //讀取redis數據
          String result1 = redisTemplate.opsForValue().get("key1").toString();
          String result2 = redisTemplate.opsForValue().get("key2").toString();
          String result3 = redisTemplate.opsForValue().get("key3").toString();
          System.out.println("緩存結果為:result:" + result1 + " " + result2 + "  " + result3);
          return "緩存結果為:result:" + result1 + " " + result2 + "  " + result3;
        }
      

      保存和讀取list

       /**
         * 保存和讀取list
         */
        @GetMapping("listredisdemo")
        public String listredisdemo() {
          List<String> list1 = new ArrayList<>();
          list1.add("a1");
          list1.add("a2");
          list1.add("a3");
          List<String> list2 = new ArrayList<>();
          list2.add("b1");
          list2.add("b2");
          list2.add("b3");
          redisTemplate.opsForList().leftPush("listkey1", list1);
          redisTemplate.opsForList().rightPush("listkey2", list2);
          List<String> resultList1 = (List<String>) redisTemplate.opsForList().leftPop("listkey1");
          List<String> resultList2 = (List<String>) redisTemplate.opsForList().rightPop("listkey2");
          System.out.println("resultList1:" + resultList1);
          System.out.println("resultList2:" + resultList2);
          return "成功";
        }

      Hash結構,保存和讀取map

       /**
         * Hash結構,保存和讀取map
         */
        @GetMapping("mapredisdemo")
        public String mapredisdemo() {
          Map<String, String> map = new HashMap<>();
          map.put("key1", "value1");
          map.put("key2", "value2");
          map.put("key3", "value3");
          map.put("key4", "value4");
          map.put("key5", "value5");
          redisTemplate.opsForHash().putAll("map1", map);
          Map<String, String> resultMap = redisTemplate.opsForHash().entries("map1");
          List<String> reslutMapList = redisTemplate.opsForHash().values("map1");
          Set<String> resultMapSet = redisTemplate.opsForHash().keys("map1");
          String value = (String) redisTemplate.opsForHash().get("map1", "key1");
          System.out.println("value:" + value);
          System.out.println("resultMapSet:" + resultMapSet);
          System.out.println("resultMap:" + resultMap);
          System.out.println("resulreslutMapListtMap:" + reslutMapList);
          return "成功";
        }
      

      保存和讀取Set

       /**
         * 保存和讀取Set
         */
        @GetMapping("setredisdemo")
        public String getredisdemo() {
          SetOperations<String, String> set = redisTemplate.opsForSet();
          set.add("key1", "value1");
          set.add("key1", "value2");
          set.add("key1", "value3");
          Set<String> resultSet = redisTemplate.opsForSet().members("key1");
          System.out.println("resultSet:" + resultSet);
          return "resultSet:" + resultSet;
        }
      

      保存和讀取zset

       /**
         * 保存和讀取zset
         */
        @GetMapping("zsetredisdemo")
        public String zsetredisdemo() {
          ZSetOperations.TypedTuple<Object> objectTypedTuple1 = new DefaultTypedTuple<>("zset-5", 9.6);
          ZSetOperations.TypedTuple<Object> objectTypedTuple2 = new DefaultTypedTuple<>("zset-6", 9.9);
          Set<ZSetOperations.TypedTuple<Object>> tuples = new HashSet<>();
          tuples.add(objectTypedTuple1);
          tuples.add(objectTypedTuple2);
          System.out.println(redisTemplate.opsForZSet().add("zset1", tuples));
          System.out.println(redisTemplate.opsForZSet().range("zset1", 0, -1));
          return "成功";
        }
      

      完整示例代碼

      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.data.redis.core.DefaultTypedTuple;
      import org.springframework.data.redis.core.RedisTemplate;
      import org.springframework.data.redis.core.SetOperations;
      import org.springframework.data.redis.core.ZSetOperations;
      import org.springframework.web.bind.annotation.GetMapping;
      import org.springframework.web.bind.annotation.RestController;
      
      import java.util.*;
      import java.util.concurrent.TimeUnit;
      
      @RestController
      public class ReidsDemo {
      
        @Autowired
        RedisTemplate redisTemplate;
      
        /**
         * 指定key的失效時間
         */
        @GetMapping("expire")
        public void expire(String key, long time) {
          //參數一:key
          //參數二:睡眠時間
          //參數三:睡眠時間單位 TimeUnit.DAYS 天 TimeUnit.HOURS 小時 。。。
          redisTemplate.expire(key, time, TimeUnit.MINUTES);
        }
      
        /**
         * 根據key獲取過期時間
         */
        @GetMapping("getexpire")
        public long getExpire(String key) {
          Long expire = redisTemplate.getExpire(key);
          return expire;
        }
      
        /**
         * 判斷key是否存在
         */
        @GetMapping("haskey")
        public boolean hasKey(String key) {
          return redisTemplate.hasKey(key);
        }
      
        /**
         * 根據key刪除reids中緩存數據
         */
        @GetMapping("delredisbykey")
        public void delete(String key) {
          redisTemplate.delete(key);
        }
      
        /**
         * 保存和讀取String
         */
        @GetMapping("stringredisdemo")
        public String stringredisdemo() {
          //設置過期時間為1分鐘
          redisTemplate.opsForValue().set("key1", "value1", 1, TimeUnit.MINUTES);
          redisTemplate.opsForValue().set("key2", "value2");
          redisTemplate.opsForValue().set("key3", "value3");
          //讀取redis數據
          String result1 = redisTemplate.opsForValue().get("key1").toString();
          String result2 = redisTemplate.opsForValue().get("key2").toString();
          String result3 = redisTemplate.opsForValue().get("key3").toString();
          System.out.println("緩存結果為:result:" + result1 + " " + result2 + "  " + result3);
          return "緩存結果為:result:" + result1 + " " + result2 + "  " + result3;
        }
      
        /**
         * 保存和讀取list
         */
        @GetMapping("listredisdemo")
        public String listredisdemo() {
          List<String> list1 = new ArrayList<>();
          list1.add("a1");
          list1.add("a2");
          list1.add("a3");
          List<String> list2 = new ArrayList<>();
          list2.add("b1");
          list2.add("b2");
          list2.add("b3");
          redisTemplate.opsForList().leftPush("listkey1", list1);
          redisTemplate.opsForList().rightPush("listkey2", list2);
          List<String> resultList1 = (List<String>) redisTemplate.opsForList().leftPop("listkey1");
          List<String> resultList2 = (List<String>) redisTemplate.opsForList().rightPop("listkey2");
          System.out.println("resultList1:" + resultList1);
          System.out.println("resultList2:" + resultList2);
          return "成功";
        }
      
        /**
         * Hash結構,保存和讀取map
         */
        @GetMapping("mapredisdemo")
        public String mapredisdemo() {
          Map<String, String> map = new HashMap<>();
          map.put("key1", "value1");
          map.put("key2", "value2");
          map.put("key3", "value3");
          redisTemplate.opsForHash().putAll("map1", map);
          Map<String, String> resultMap = redisTemplate.opsForHash().entries("map1");
          List<String> reslutMapList = redisTemplate.opsForHash().values("map1");
          Set<String> resultMapSet = redisTemplate.opsForHash().keys("map1");
          String value = (String) redisTemplate.opsForHash().get("map1", "key1");
          System.out.println("value:" + value);
          System.out.println("resultMapSet:" + resultMapSet);
          System.out.println("resultMap:" + resultMap);
          System.out.println("resulreslutMapListtMap:" + reslutMapList);
          return "成功";
        }
      
        /**
         * 保存和讀取Set
         */
        @GetMapping("setredisdemo")
        public String getredisdemo() {
          SetOperations<String, String> set = redisTemplate.opsForSet();
          set.add("key1", "value1");
          set.add("key1", "value2");
          set.add("key1", "value3");
          Set<String> resultSet = redisTemplate.opsForSet().members("key1");
          System.out.println("resultSet:" + resultSet);
          return "resultSet:" + resultSet;
        }
      
        /**
         * 保存和讀取zset
         */
        @GetMapping("zsetredisdemo")
        public String zsetredisdemo() {
          ZSetOperations.TypedTuple<Object> objectTypedTuple1 = new DefaultTypedTuple<>("zset-5", 9.6);
          ZSetOperations.TypedTuple<Object> objectTypedTuple2 = new DefaultTypedTuple<>("zset-6", 9.9);
          Set<ZSetOperations.TypedTuple<Object>> tuples = new HashSet<>();
          tuples.add(objectTypedTuple1);
          tuples.add(objectTypedTuple2);
          System.out.println(redisTemplate.opsForZSet().add("zset1", tuples));
          System.out.println(redisTemplate.opsForZSet().range("zset1", 0, -1));
          return "成功";
        }
      }

      序列化

      直接粘貼在項目中即可

      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import org.springframework.data.redis.connection.RedisConnectionFactory;
      import org.springframework.data.redis.core.RedisTemplate;
      import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
      import org.springframework.data.redis.serializer.RedisSerializer;
      import org.springframework.data.redis.serializer.StringRedisSerializer;
      
      /*
      *序列化
       */
      @Configuration
      public class MyRedisConfig {
      
        @Bean(name = "redisTemplate")
        public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
          RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
          //參照StringRedisTemplate內部實現指定序列化器
          redisTemplate.setConnectionFactory(redisConnectionFactory);
          redisTemplate.setKeySerializer(keySerializer());
          redisTemplate.setHashKeySerializer(keySerializer());
          redisTemplate.setValueSerializer(valueSerializer());
          redisTemplate.setHashValueSerializer(valueSerializer());
          return redisTemplate;
        }
      
        private RedisSerializer<String> keySerializer(){
          return new StringRedisSerializer();
        }
      
        //使用Jackson序列化器
        private RedisSerializer<Object> valueSerializer(){
          return new GenericJackson2JsonRedisSerializer();
        } 
      }

      到此這篇關于spring boot整合redis實現RedisTemplate三分鐘快速入門的文章就介紹到這了,更多相關springboot RedisTemplate入門內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

      相關文章

      • Java Eclipse中實現快速替換變量

        Java Eclipse中實現快速替換變量

        這篇文章主要介紹了Java Eclipse中實現快速替換變量,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
        2020-09-09
      • java匿名內部類實例代碼詳解

        java匿名內部類實例代碼詳解

        這篇文章主要介紹了java匿名內部類實例代碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
        2019-12-12
      • Jmeter post上傳文件實現過程詳解

        Jmeter post上傳文件實現過程詳解

        這篇文章主要介紹了Jmeter post上傳文件實現過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
        2020-08-08
      • 掃二維碼自動跳轉【java】詳解

        掃二維碼自動跳轉【java】詳解

        這篇文章主要介紹了java掃二維碼自動跳轉,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
        2019-05-05
      • Java從數據庫中讀取Blob對象圖片并顯示的方法

        Java從數據庫中讀取Blob對象圖片并顯示的方法

        這篇文章主要介紹了Java從數據庫中讀取Blob對象圖片并顯示的方法,實例分析了Java讀取數據庫中Blob對象圖片的技巧與操作方法,需要的朋友可以參考下
        2015-02-02
      • Java MD5加密(實例講解)

        Java MD5加密(實例講解)

        下面小編就為大家帶來一篇Java MD5加密(實例講解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
        2017-08-08
      • 詳細講述Java中的對象轉型

        詳細講述Java中的對象轉型

        在本篇文章里我們給大家詳細分享了關于Java中的對象轉型的知識點內容,有興趣的朋友們學習下。
        2018-10-10
      • 詳解idea搭建springboot+mybatis框架的教程

        詳解idea搭建springboot+mybatis框架的教程

        這篇文章主要介紹了詳解idea搭建springboot+mybatis框架的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
        2020-11-11
      • java ArrayList集合中的某個對象屬性進行排序的實現代碼

        java ArrayList集合中的某個對象屬性進行排序的實現代碼

        這篇文章主要介紹了java ArrayList集合中的某個對象屬性進行排序的實現代碼,需要的朋友可以參考下
        2016-07-07
      • 在Eclipse中更改maven項目名的方法

        在Eclipse中更改maven項目名的方法

        今天小編就為大家分享一篇關于在Eclipse中更改maven項目名的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
        2019-03-03

      最新評論

      218彩票 www.640206.com:农安县| www.s59uk.com:丹寨县| www.burkholderpaving.com:大邑县| www.black-butler.com:西青区| www.mfjcg.com:涞源县| www.bling2day.com:淳安县| www.hiroshihawaii.com:新沂市| www.gz-goodhappy.com:康平县| www.checkloansijjxr.com:永康市| www.treatmentcenterpage.com:锡林郭勒盟| www.pearsonind.com:平谷区| www.theraputty.net:杂多县| www.sensationsporthorses.com:伊吾县| www.decartlab.com:舞阳县| www.rcaaart.org:丰宁| www.jiaanhb.com:桂平市| www.escenamobile.com:宣武区| www.hollyflicks.com:婺源县| www.falsestop.com:乐安县| www.hg22773.com:富源县| www.z8689.com:阆中市| www.zybrickmachine.com:军事| www.actuneups.com:三穗县| www.dayurexian.com:崇左市| www.k7672.com:鄂托克前旗| www.aircompressorhose.org:永福县| www.373jy.com:炎陵县| www.sihushiping.com:高要市| www.modernimagelisam.com:肥乡县| www.jlxrny.com:雅江县| www.hust-hy.com:法库县| www.689020.com:远安县| www.northgateterrace.org:铜山县| www.suntikputihdahlia.net:七台河市| www.globalnj.com:屏山县| www.dessertsbyrondi.com:孝义市| www.buchuebersetzungen.com:黄大仙区| www.xzwsst.com:揭西县| www.zhenguonet.com:普兰县| www.amzabawki.com:石屏县| www.998cm.com:乡城县| www.tootoomarket.com:九龙县| www.cpyuce.com:浏阳市| www.andyhennegan.com:东山县| www.999yingcheng.com:额尔古纳市| www.flzco.com:恭城| www.9e-9e.com:鄂伦春自治旗| www.king1000.com:台东县| www.greenbychance.net:清水县| www.arfengwork.com:崇仁县| www.bjgyxw.com:苗栗县| www.sixsecondad.com:余干县| www.xinchenba.com:南溪县| www.albatrosrugbyclub.com:新安县| www.guoqq.com:南宫市| www.abtans.com:万全县| www.heixiule.com:库伦旗| www.780790.com:故城县| www.supernac.com:清丰县| www.f9963.com:临夏市| www.quizgrok.com:黄骅市| www.chinagoodbuy.com:赣榆县| www.matiastroncoso.com:顺昌县| www.ycjjshg.com:北碚区| www.abrasys.com:邯郸县| www.thegreatmuseum.net:宜兰县| www.70088a.com:丹江口市| www.kxwzqw.com:惠水县| www.hyrscg.net:福清市| www.bdkindustries.com:河津市| www.geile-sexdate.com:乾安县| www.wzsghm.com:平武县| www.newsstuck.com:临湘市| www.ko600.com:云南省| www.vampiresathruz.com:旌德县| www.victorhugor.com:桐梓县| www.626037.com:嵊州市| www.zamack.com:义马市| www.f7552.com:高陵县| www.982320.com:类乌齐县| www.0790sf.com:兰西县| www.andersonyoga.com:上高县| www.porcoespirito.com:双城市| www.hg52456.com:新民市|