国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

spring boot整合redis實(shí)現(xiàn)RedisTemplate三分鐘快速入門

瀏覽:80日期:2023-03-31 17:59:13
引入依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>RedisTemplate五種數(shù)據(jù)結(jié)構(gòu)的操作 redisTemplate.opsForValue(); //操作字符串 redisTemplate.opsForHash(); //操作hash redisTemplate.opsForList(); //操作list redisTemplate.opsForSet(); //操作set redisTemplate.opsForZSet(); //操作有序zsetRedisTemplate方法講解

判斷key是否存在

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

獲取指定的key的失效時(shí)間

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

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

/** * 根據(jù)key獲取過期時(shí)間 */ @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() { //設(shè)置過期時(shí)間為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('緩存結(jié)果為:result:' + result1 + ' ' + result2 + ' ' + result3); return '緩存結(jié)果為: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結(jié)構(gòu),保存和讀取map

/** * Hash結(jié)構(gòu),保存和讀取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;@RestControllerpublic class ReidsDemo { @Autowired RedisTemplate redisTemplate; /** * 指定key的失效時(shí)間 */ @GetMapping('expire') public void expire(String key, long time) { //參數(shù)一:key //參數(shù)二:睡眠時(shí)間 //參數(shù)三:睡眠時(shí)間單位 TimeUnit.DAYS 天 TimeUnit.HOURS 小時(shí) 。。。 redisTemplate.expire(key, time, TimeUnit.MINUTES); } /** * 根據(jù)key獲取過期時(shí)間 */ @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() { //設(shè)置過期時(shí)間為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('緩存結(jié)果為:result:' + result1 + ' ' + result2 + ' ' + result3); return '緩存結(jié)果為: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結(jié)構(gòu),保存和讀取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 '成功'; }}序列化

直接粘貼在項(xiàng)目中即可

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;/**序列化 */@Configurationpublic class MyRedisConfig { @Bean(name = 'redisTemplate') public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){ RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); //參照StringRedisTemplate內(nèi)部實(shí)現(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(); } }

到此這篇關(guān)于spring boot整合redis實(shí)現(xiàn)RedisTemplate三分鐘快速入門的文章就介紹到這了,更多相關(guān)springboot RedisTemplate入門內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 亚洲综合中文 | 欧美一级毛片在线 | a一级免费视频 | 成人免费大片黄在线观看com | 国产美女作爱视频 | 久久伊人男人的天堂网站 | 欧美一做特黄毛片 | 欧美一级片免费在线观看 | 国产一区二区在免费观看 | 中文字幕在线永久 | 久久国产精品视频一区 | 九九九九精品视频在线播放 | 91理论片午午伦夜理片久久 | 国产精品1区 2区 3区 | 精品欧美成人高清视频在线观看 | 久草新视频| 456主播喷水在线观看 | 国产在线精品二区韩国演艺界 | bt天堂国产亚洲欧美在线 | 日韩久久一区二区三区 | 最新日韩欧美不卡一二三区 | 九九精品国产兔费观看久久 | 欧美日韩日本国产 | 日本强不卡在线观看 | aaa在线观看高清免费 | 深夜做爰性大片中文 | 精品亚洲福利一区二区 | 久久久久久综合对白国产 | 国产a级特黄的片子视频免费 | 亚州在线视频 | 成年女人免费毛片视频永久 | 日韩精品一区二区三区免费视频 | 91精品久久久 | 91日本在线视频 | 99国产在线视频 | 亚洲黄色在线视频 | 精品国产免费观看一区 | 日韩一区二区三区在线 | 日韩成人在线播放 | 欧美大片毛片大片 | 午夜三级国产精品理论三级 |