日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

redistemplate set方法_spring boot整合redis ---- RedisTemplate 三分钟快速入门

發(fā)布時間:2024/9/30 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redistemplate set方法_spring boot整合redis ---- RedisTemplate 三分钟快速入门 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引入依賴

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

RedisTemplate五種數(shù)據(jù)結構的操作

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) {//參數(shù)一:key//參數(shù)二:睡眠時間//參數(shù)三:睡眠時間單位 TimeUnit.DAYS 天 TimeUnit.HOURS 小時 。。。redisTemplate.expire(key, time, TimeUnit.MINUTES);}

根據(jù)key獲取過期時間

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

根據(jù)key刪除reids中緩存數(shù)據(jù)

/*** 根據(jù)key刪除reids中緩存數(shù)據(jù)*/@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數(shù)據(jù)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 {@AutowiredRedisTemplate redisTemplate;/*** 指定key的失效時間*/@GetMapping("expire")public void expire(String key, long time) {//參數(shù)一:key//參數(shù)二:睡眠時間//參數(shù)三:睡眠時間單位 TimeUnit.DAYS 天 TimeUnit.HOURS 小時 。。。redisTemplate.expire(key, time, TimeUnit.MINUTES);}/*** 根據(jù)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);}/*** 根據(jù)key刪除reids中緩存數(shù)據(jù)*/@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數(shù)據(jù)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內部實現(xiàn)指定序列化器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();}}

如果喜歡本篇文章,歡迎轉發(fā)、點贊。

記得關注我!

總結

以上是生活随笔為你收集整理的redistemplate set方法_spring boot整合redis ---- RedisTemplate 三分钟快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。