久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Springboot如何操作redis數據

瀏覽:31日期:2023-05-19 15:09:22

StringRedisTemplate與RedisTemplate區別點

兩者的關系是StringRedisTemplate繼承RedisTemplate。

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

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

RedisTemplate使用的是JdkSerializationRedisSerializer 存入數據會將數據先序列化成字節數組然后在存入Redis數據庫。

  StringRedisTemplate使用的是StringRedisSerializer

使用時注意事項:

 當你的redis數據庫里面本來存的是字符串數據或者你要存取的數據就是字符串類型數據的時候,那么你就使用

StringRedisTemplate即可。

 但是如果你的數據是復雜的對象類型,而取出的時候又不想做任何的數據轉換,直接從Redis里面取出一個對象,那么使用

RedisTemplate是更好的選擇。

RedisTemplate使用時常見問題:

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

RedisTemplate中定義了5種數據結構操作

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

StringRedisTemplate常用操作

stringRedisTemplate.opsForValue().set('test', '100',60*10,TimeUnit.SECONDS);//向redis里存入數據和設置緩存時間 stringRedisTemplate.boundValueOps('test').increment(-1);//val做-1操作 stringRedisTemplate.opsForValue().get('test')//根據key獲取緩存中的val stringRedisTemplate.boundValueOps('test').increment(1);//val +1 stringRedisTemplate.getExpire('test')//根據key獲取過期時間 stringRedisTemplate.getExpire('test',TimeUnit.SECONDS)//根據key獲取過期時間并換算成指定單位 stringRedisTemplate.delete('test');//根據key刪除緩存 stringRedisTemplate.hasKey('546545');//檢查key是否存在,返回boolean值 stringRedisTemplate.opsForSet().add('red_123', '1','2','3');//向指定key中存放set集合 stringRedisTemplate.expire('red_123',1000 , TimeUnit.MILLISECONDS);//設置過期時間 stringRedisTemplate.opsForSet().isMember('red_123', '1')//根據key查看集合中是否存在指定數據 stringRedisTemplate.opsForSet().members('red_123');//根據key獲取set集合

StringRedisTemplate的使用

springboot中使用注解@Autowired 即可

@Autowiredpublic StringRedisTemplate stringRedisTemplate;

使用樣例:

@RestController@RequestMapping('/user')public class UserResource { private static final Logger log = LoggerFactory.getLogger(UserResource.class); @Autowired private UserService userService; @Autowired public StringRedisTemplate stringRedisTemplate; @RequestMapping('/num') public String countNum() { String userNum = stringRedisTemplate.opsForValue().get('userNum'); if(StringUtils.isNull(userNum)){ stringRedisTemplate.opsForValue().set('userNum', userService.countNum().toString()); } return userNum; }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 淮阳县| 淮北市| 英山县| 锦州市| 垣曲县| 德保县| 昆明市| 盐津县| 玛多县| 黎平县| 保康县| 桐梓县| 清远市| 盐城市| 阜新市| 乐山市| 中方县| 泗洪县| 刚察县| 阜城县| 吴江市| 遵义县| 渭源县| 集安市| 潼南县| 泰州市| 威海市| 环江| 沛县| 浑源县| 灌阳县| 雅江县| 佛山市| 东方市| 资源县| 安徽省| 阿勒泰市| 萨迦县| 剑阁县| 女性| 百色市|