如何在springboot项目中添加redis 缓存?
Redis簡(jiǎn)介
Redis(Remote?Dictionary?Server?)遠(yuǎn)程字典服務(wù),是一個(gè)開(kāi)源的使用ANSI?C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存也可持久化的日志型、Key-Value數(shù)據(jù)庫(kù)。
Redis的特點(diǎn)
-?性能極高,基于內(nèi)存,讀的速度是110000次/s,寫(xiě)的速度是81000次/s
-?豐富的數(shù)據(jù)類(lèi)型,支持string、hash、list、set及zset多種數(shù)據(jù)類(lèi)型
-?原子性,所有操作都是原子性的,支持事務(wù)
-?豐富的特性,支持發(fā)布訂閱、通知、過(guò)期策略等
-?支持持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤(pán)中,重啟后再次加載
-?支持分布式,理論上可以無(wú)限擴(kuò)展
-?單線程,沒(méi)有線程并發(fā)問(wèn)題
主要應(yīng)用場(chǎng)景:
1.?作為緩存,提升查詢(xún)性能
2.?做分布式鎖
安裝Redis
linux安裝
安裝c編譯器
yum -y install gcc下載redis
cd /usr/local wget http://download.redis.io/releases/redis-3.2.5.tar.gz解壓redis
tar -xvf redis-3.2.5.tar.gz mv redis-3.2.5 redis編譯redis
cd redis make配置redis
修改redis.conf
# bind 127.0.0.1 去掉綁定本機(jī)IP,讓其它機(jī)器訪問(wèn) protected mode no 關(guān)閉保護(hù)模式啟動(dòng)redis服務(wù)器
切換到src中
./redis-server ../redis.conf啟動(dòng)redis客戶(hù)端
./reds-cli從官網(wǎng)下載redis的windows版本
https://github.com/tporadowski/redis/releases
解壓后,雙擊redis-server.exe,就完成了Redis啟動(dòng)
?安裝好后啟動(dòng)redis 可視化工具?Redis Desktop Manager 這個(gè)可視化工具可以直接搜索下載。
?輸入后點(diǎn)擊左下角的測(cè)試連接,接著會(huì)顯示連接成功。
然后導(dǎo)入依賴(lài)
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.6</version><scope>compile</scope></dependency>在配置文件中配置
spring.redis.host=localhost spring.redis.port=6379 spring.redis.database=0 spring.redis.jedis.pool.max-active=100 spring.redis.jedis.pool.max-wait=100ms spring.redis.jedis.pool.max-idle=100 spring.redis.jedis.pool.min-idle=10相關(guān)注解
//啟動(dòng)緩存
@EnableCaching
配置類(lèi)
@Configuration public class RedisConfig {@Beanpublic RedisCacheConfiguration provideRedisCacheConfiguration(){//加載默認(rèn)配置RedisCacheConfiguration conf = RedisCacheConfiguration.defaultCacheConfig();//返回Jackson序列化器return conf.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJacksonJsonRedisSerializer()));} }添加完配置類(lèi)后報(bào)錯(cuò)的話(huà)記得導(dǎo)包。
@CacheConfig 使用在Service類(lèi)上,可以配置緩存名稱(chēng),如:
@CacheConfig(cacheNames = “books”)
@Cacheable 使用在查詢(xún)方法上,讓方法優(yōu)先查詢(xún)緩存
@CachePut 使用在更新和添加方法上,數(shù)據(jù)庫(kù)更新和插入數(shù)據(jù)后同時(shí)保存到緩存里
@CacheEvict 使用在刪除方法上,數(shù)據(jù)庫(kù)刪除后同時(shí)刪除緩存
?
?這是在serviceImpl層添加
//按分類(lèi)查詢(xún)廣告時(shí)進(jìn)行緩存,緩存名稱(chēng)是promotionAd-category,鍵是分類(lèi)id
caheName后面的名字自己取,下面的caheable一樣,后面時(shí)string類(lèi)型的id屬性
其它的crud操作類(lèi)似,只需要改注解即可。
緩存添加完成后啟動(dòng)項(xiàng)目,執(zhí)行CRUD后,相應(yīng)的數(shù)據(jù)會(huì)在redis緩存中出現(xiàn)。
如果對(duì)你有幫助的話(huà),還希望能夠點(diǎn)個(gè)贊,謝謝。?
總結(jié)
以上是生活随笔為你收集整理的如何在springboot项目中添加redis 缓存?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 了解生命周期转变类型
- 下一篇: 从阿里跳头条,值得吗?