<font id="nc9yk"></font>
  • <tt id="nc9yk"></tt>
          <rp id="nc9yk"><optgroup id="nc9yk"></optgroup></rp>
          <tt id="nc9yk"><form id="nc9yk"></form></tt>

            <cite id="nc9yk"></cite>

            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

            最新評論

            hao500彩票 www.cp2959.com:清河县| www.nest180.com:五华县| www.convites-casamento.com:清丰县| www.troughtonmichael.com:图们市| www.3721waibao.com:淮滨县| www.alpinegardens.net:谷城县| www.digishoppy.com:宜宾市| www.bloghomedepot.com:肃南| www.linksforlunch.com:那坡县| www.668246.com:乌兰察布市| www.calentopia.com:东乡族自治县| www.rmd988.com:南江县| www.urethritis.org:宝坻区| www.saltatoria.com:镇远县| www.jtian-168.com:梨树县| www.dickalerts.com:江口县| www.f5865.com:文安县| www.stefanie-scott.org:邵阳县| www.gumur.com:乐陵市| www.biosourcepharm.com:周至县| www.lysyjj.com:巴中市| www.qdsej.com:安龙县| www.bellinghamkiwanis.com:家居| www.iconachive.com:都兰县| www.javadshadkam.com:孟连| www.tendainfo.com:名山县| www.abcqg.com:阿拉善盟| www.majohairbraiding.com:德州市| www.shank-tank.net:瓦房店市| www.s7765.com:中江县| www.qzxihu.com:贵州省| www.esfhera.com:买车| www.shipwatch.org:星子县| www.mz733.com:平安县| www.zhouluopiaoliu.com:遵义市| www.new-taxi.com:晋城| www.inspirediversity.com:邹城市| www.zhibo6789.com:凌云县| www.qz553.com:茂名市| www.kzvfe.cn:汉中市| www.temp-abc.com:将乐县| www.mindsonthemarkets.com:吉首市| www.onetimeofferz.com:砚山县| www.irenecroce.com:双柏县| www.crowdcomputingblog.com:巴青县| www.zj-888.com:遂溪县| www.vosmisi.com:东阿县| www.cp5776.com:徐水县| www.1pshouhui.com:台中县| www.2323job.com:昭平县| www.82aaaa.com:德清县| www.enshuohuojia.com:阳城县| www.andzombies.com:金堂县| www.wwwhg5844.com:什邡市| www.6969t.com:吉林市| www.jhjxjgc.com:白朗县| www.rynhd.com:秦皇岛市| www.berraingenieros.com:广东省| www.wyadorkable.com:宝鸡市| www.chryslermodules.com:伊春市| www.ctspecialistsllc.com:曲松县| www.efemlak.com:策勒县| www.sjacm.com:靖边县| www.georgiadebtrelief.net:信宜市| www.jtdyz.cn:合江县| www.3883pj.com:阿坝县| www.mathtuition.org:龙门县| www.orodfish.com:赣州市| www.khxrw.cn:邢台市| www.cellenergize.com:塔城市| www.treatmentcenterpage.com:吐鲁番市| www.fsxianxin.com:封丘县| www.corprussia.com:湖州市| www.mingyunjiaoxiangqu.com:兴和县| www.beeyourlashes.com:松潘县| www.allaboutcleaningmonterey.com:宾阳县| www.74li.com:广河县| www.torrezanefelipe.com:宁乡县| www.gcxlsj.com:四川省| www.cqgspclaw.com:英吉沙县| www.impobol.com:额尔古纳市| www.aec-avocats.com:南丰县| www.lishurong.com:嵊州市| www.klkls.com:鹤山市|