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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

redis工具类_SpringBoot 操作 Redis 数据

發布時間:2025/3/11 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis工具类_SpringBoot 操作 Redis 数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SpringBoot 操作 Redis 數據

簡介

Redis 是一個開源的NoSQL數據庫,基于內存的鍵值存儲,速度快。Redis 支持數據結構,如字符串,散列,列表,集和帶范圍查詢的有序集。

5種主要數據類型:

字符串類型 ? ?string散列類型 ? ? ?hash列表類型 ? ? ?list集合類型 ? ? ?set有序集合類型 ?zset

Redis優缺點

直接基于內存讀寫,不用Redis直接用MySQL,先不說查詢性能耗時,一個是直達一個是通過媒介,顯而易見,Redis 速度很快 。不過Redis ,僅適用于鍵值對,并不能替代MySQL,雖然其有持久化,但是也可能會崩潰,損失幾秒的數據

項目環境

項目工具環境:

IDE工具,這里是 Jetbrains IDEAMavenJDK1.8Redis 服務器

源碼環境地址

https://github.com/Gleans/SpringBootLearn/tree/master/springboot-redis
后面的基于這個項目來操作

定義 RedisTemplate

RedisConfig.java

import?org.springframework.context.annotation.Bean;
import?org.springframework.context.annotation.Configuration;
import?org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import?org.springframework.data.redis.core.RedisTemplate;
import?org.springframework.data.redis.serializer.GenericToStringSerializer;
import?org.springframework.data.redis.serializer.RedisSerializer;
import?org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public?class?RedisConfig?{
????@Bean
????JedisConnectionFactory?jedisConnectionFactory()?{
????????JedisConnectionFactory?jedisConnectionFactory?=?new?JedisConnectionFactory();
????????jedisConnectionFactory.setPassword("ekko1234");
????????return?jedisConnectionFactory;
????}

????@Bean
????public?RedisTemplate?redisTemplate()?{
????????final?RedisTemplate?redisTemplate?=?new?RedisTemplate<>();
????????RedisSerializer?stringSerializer?=?new?StringRedisSerializer();
????????RedisSerializer?jsonString?=?new?GenericToStringSerializer<>(Object.class);
????????redisTemplate.setConnectionFactory(jedisConnectionFactory());
????????redisTemplate.setKeySerializer(stringSerializer);
????????redisTemplate.setValueSerializer(jsonString);
????????redisTemplate.setHashKeySerializer(stringSerializer);
????????redisTemplate.setHashValueSerializer(jsonString);return?redisTemplate;
????}
}

操作 Redis 初體驗

Spring Boot 的開箱即用的特點
集成 Redis 也是顯而易見
在test環境新建測試類 TestRedis.java

import?lombok.extern.slf4j.Slf4j;
import?org.junit.FixMethodOrder;
import?org.junit.Test;
import?org.junit.runner.RunWith;
import?org.junit.runners.MethodSorters;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.boot.test.context.SpringBootTest;
import?org.springframework.data.redis.core.RedisTemplate;
import?org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

//根據測試方法名字搞定執行順序
@Slf4j
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public?class?TestRedis?{

????private?RedisTemplate?redisTemplate;@Autowiredpublic?void?setRedisTemplate(RedisTemplate?redisTemplate)?{this.redisTemplate?=?redisTemplate;
????}//?做下面的操作
}

操作字符串

在測試類中操作字符串:

????@Test
????public?void?operateStr(){
????????//?存入?key為username??value?為?admin
????????redisTemplate.opsForValue().set("username","admin");
????????//?獲取?key為username
????????String?username?=?(String)?redisTemplate.opsForValue().get("username");
????????System.out.println(username);
????}

執行過后發現存在redis中的數據:

操作集合

opsForList()

????@Test
????public?void?operateList()?{
????????List?userList?=?new?ArrayList<>();
????????userList.add("張三");
????????userList.add("李四");//循環向userlist左添加值
????????userList.forEach(value?->?redisTemplate.opsForList().leftPush("userlist",?value));//向userlist右添加值
????????redisTemplate.opsForList().rightPush("userlist",?"麻子");
????????log.info("刪除前:userlist->{}",?redisTemplate.opsForList().range("userlist",?0,?10));/*
??????????三個參數:
??????????- key redis中存 key值
??????????-?count?從左或是從右刪除,正左負右
??????????-?value?就是需要從list移除的值
??????????*/
????????redisTemplate.opsForList().remove("userlist",?0,?"麻子");
????????log.info("刪除后:userlist->{}",?redisTemplate.opsForList().range("userlist",?0,?10));
????}

輸出:

刪除前:userlist->[李四,?張三,?麻子]
刪除后:userlist->[李四,?張三]

操作不可重復集合

opsForSet()

????@Test
????public?void?operateSet(){
????????List?trap?=?new?ArrayList<>();
????????trap.add("工具人");
????????trap.add("工具人");
????????trap.add("工具人");
????????trap.add("四塊五的妞");
????????trap.add("十元妹子");
????????System.out.print(trap.toString());//循環向userlist左添加值
????????trap.forEach(value->redisTemplate.opsForSet().add("userSet",value));
????????log.info("刪除前:userSet->{}",redisTemplate.opsForSet().members("userSet"));//?直接根據set的key值刪除
????????redisTemplate.opsForSet().remove("userSet","工具人");
????????log.info("刪除后:userSet->{}",redisTemplate.opsForSet().members("userSet"));
????}

輸出:

刪除前:userSet->[工具人,?工具人,?工具人,?四塊五的妞,?十元妹子]
刪除后:userSet->[四塊五的妞,?十元妹子]

哈希操作

opsForHash() ?相當于在操作實體類

????@Test
????public?void?operateHash(){
????????//添加
????????redisTemplate.opsForHash().put("user","username","ekko");
????????redisTemplate.opsForHash().put("user","address","Shanghai");
????????redisTemplate.opsForHash().put("user","passwd","1234");
????????//修改
????????redisTemplate.opsForHash().put("user","address","Beijing");
????????//刪除
????????redisTemplate.opsForHash().delete("user","passwd");
????}

結果:

總結

數據量大且不長變的還是用緩存接收數據來回操作使用 Redis,持久化時再入庫做好緩存擊穿的準備利用好 Redis 可以很大程度的減少 MySQL 的壓力Redis 常用的操作基本滿足需求

小知識

方法名字前加ABCD...是為了讓方法有執行順序
根據測試方法名字搞定執行順序,在方法上加注解@FixMethodOrder(MethodSorters.NAME_ASCENDING)
日志注解@Slf4j是為了讓日志書寫更方便

?//之前寫日志??
?log.info("輸出a"+index+"b");
?//現在
?log.info("輸出a{}b",index);

多個參數可以用多個{},總之,喜歡哪個用哪個,謝謝!

閱讀原文可評論或與作者交流

總結

以上是生活随笔為你收集整理的redis工具类_SpringBoot 操作 Redis 数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品一区二区不卡 | 色综合视频在线观看 | 免费福利影院 | 麻豆视频网页 | 中文字幕亚洲无线码在线一区 | 午夜在线精品 | 久久久18禁一区二区三区精品 | 激情网站在线 | 97影院在线午夜 | 久久.com | 国产免费看av | 国产91白丝在一线播放 | 奇米四色影视 | 欧洲午夜视频 | 欧美一区二区在线观看视频 | zzji欧美大片 | 国产91白丝在一线播放 | 久久公开视频 | 老女人综合网 | 国产精品三 | 亚洲精品专区 | 欧美黄色大片视频 | 草草在线视频 | 成年人网站在线免费观看 | 少妇乱淫36部 | 亚洲免费在线 | 老牛影视少妇在线观看 | 一区二区精彩视频 | 午夜中文字幕 | 日韩av在线网 | 日韩欧美视频在线播放 | 国产性色av | 91精品在线观看视频 | 一卡二卡在线观看 | 免费手机av| jizzjizz欧美69巨大 | 深夜福利麻豆 | 樱花动漫无圣光 | 夜夜撸| 韩国黄色视屏 | 日韩美女福利视频 | 色综合久久综合 | 亚洲图片在线播放 | 日韩乱论 | 欧美黄色大片免费观看 | 台湾黄色网址 | 男阳茎进女阳道视频大全 | 激情图片网站 | 调教亲女小嫩苞h文小说 | 狠狠干欧美 | 久艹视频在线 | 免费国偷自产拍精品视频 | ,国产精品国产三级国产 | 白白色免费视频 | 99视频只有精品 | 亚洲A∨无码国产精品 | 蜜臀久久99静品久久久久久 | 国产专区av | 777视频在线观看 | 欧美一卡二卡三卡四卡 | 操人视频在线观看 | 少妇特黄a一区二区三区88av | 四虎音影 | 国产主播自拍av | 色屁屁www | 国产成人精品一区二区三区四区 | 国产中文字幕av | 男人天堂欧美 | 国产精品无码中文 | 亚洲石原莉奈一区二区在线观看 | 欧美猛操 | 青青草国产精品 | 懂色av色吟av夜夜嗨 | 真人毛片视频 | 九月婷婷丁香 | 毛片毛片女人毛片毛片 | 97中文在线 | 黄色av电影网址 | 毛片亚洲av无码精品国产午夜 | 亚洲一区二区在线视频 | 色资源在线观看 | 成人自拍在线 | 亚洲AV成人午夜无码精品久久 | 亚洲成av | 动漫美女无遮挡免费 | 在线观看wwww | 国产精品美女久久久免费 | 欧美精品一区二区三区视频 | 成人国产精品免费 | 欧美在线三级 | www五月婷婷 | 国产乱淫a∨片免费视频 | 在线精品视频免费观看 | 在线观看国产精品一区 | 欧美三级a做爰在线观看 | 中文不卡视频 | 日本一道本在线 | 国产精品久久久久三级无码 | 黄色av网页|