SpringBoot集成使用Redis及搭建過程
SpringBoot集成使用redis
Jedis 是 Redis 官方推出的一款面向 Java 的客戶端,提供了很多接口供 Java 語言調(diào)用??梢栽?Redis 官網(wǎng)下載. Spring-data-redis 是 spring 大家族的一部分,提供了在 srping 應(yīng)用中通 過簡單的配置訪問 redis 服務(wù),對 reids 底層開發(fā)包(Jedis, JRedis, and RJC)進(jìn) 行了高度封裝,RedisTemplate 提供了 redis 各種操作
spring-data-redis 針對 jedis 提供了如下功能:
- 連接池自動管理,提供了一個高度封裝的“RedisTemplate”類.
- 針對 jedis 客戶端中大量 api 進(jìn)行了歸類封裝,將同一類型操作封裝為 operation 接口.
ValueOperations:簡單 K-V 操作
SetOperations:set 類型數(shù)據(jù)操作
ZSetOperations:zset 類型數(shù)據(jù)操作
HashOperations:針對 map 類型的數(shù)據(jù)操作
ListOperations:針對 list 類型的數(shù)據(jù)操作
3.將事務(wù)操作封裝,有容器控制。
4.針對數(shù)據(jù)的“序列化/反序列化”,提供了多種可選擇策略(RedisSerializer)
JdkSerializationRedisSerializer:POJO 對象的存取場景,使用 JDK 本身 序列化機(jī)制.
StringRedisSerializer:Key 或者 value 為字符串的場景,根據(jù)指定的charset 對數(shù)據(jù)的字節(jié)序列編碼成 string,是“new String(bytes, charset)”和 “string.getBytes(charset)”的直接封裝。是最輕量級和高效的策略。
JacksonJsonRedisSerializer:jackson-json 工具提供了 javabean 與 json 之 間的轉(zhuǎn)換能力,可以將 pojo 實(shí)例序列化成 json 格式存儲在 redis 中,也可以將 json 格式的數(shù)據(jù)轉(zhuǎn)換成 pojo 實(shí)例。
搭建
1.導(dǎo)入jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.配置連接redis
spring: redis: host: 192.168.31.100 port: 6379 password: 111 database: 0 pool: max-active: 8 # 連接池最大連接數(shù)(使用負(fù)值表示沒有限制) max-wait: -1ms # 連接池最大阻塞等待時間(使用負(fù)值表示沒有限制) max-idle: 8 # 連接池中的最大空閑連接 min-idle: 0 # 連接池中的最小空閑連接 timeout: 5000ms # 連接超時時間(毫秒)
在application.yml文件中spring下添加如上配置
3.添加配置類RedisConfig
package com.ffyc.back.demo.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; 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.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfig { /** * 序列化鍵,值 * @param connectionFactory * @return */ @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class); StringRedisSerializer redisSerializer = new StringRedisSerializer(); redisTemplate.setKeySerializer(redisSerializer); redisTemplate.setHashKeySerializer(redisSerializer); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); return redisTemplate; } }
在配置包中添加此配置
此配置類的作用是將后端將要傳過去的數(shù)據(jù)json序列化,如果沒有此配置的話后端傳過去的格式和redis端的不符合會出現(xiàn)亂碼情況
4.注入RedisTemplate
在需要使用的地方注入 注入后就可以使用了
5.測試和使用
使用實(shí)例:
(1)
(2)
到此這篇關(guān)于SpringBoot集成使用Redis的文章就介紹到這了,更多相關(guān)SpringBoot集成使用Redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決@PathVariable出現(xiàn)點(diǎn)號.時導(dǎo)致路徑參數(shù)截斷獲取不全的問題
這篇文章主要介紹了解決@PathVariable出現(xiàn)點(diǎn)號.時導(dǎo)致路徑參數(shù)截斷獲取不全的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Java設(shè)計(jì)模式之適配器模式(Adapter模式)介紹
這篇文章主要介紹了Java設(shè)計(jì)模式之適配器模式(Adapter模式)介紹,本文講解了為何使用適配器模式、如何使用適配器模式等內(nèi)容,需要的朋友可以參考下2015-03-03Java使用Fastjson進(jìn)行JSON數(shù)據(jù)操作教程詳解
Fastjson?是一個?Java?庫,可以用來將?Java?對象轉(zhuǎn)換為它們的?JSON?表示,本文主要為大家詳細(xì)介紹了Java如何使用Fastjson進(jìn)行JSON數(shù)據(jù)操作,需要的可以參考下2023-12-12Java的線程與進(jìn)程以及線程的四種創(chuàng)建方式
這篇文章主要為大家詳細(xì)介紹了Java的線程與進(jìn)程以及線程的四種創(chuàng)建方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03postman中實(shí)現(xiàn)傳遞@RequestBody參數(shù)
這篇文章主要介紹了postman中實(shí)現(xiàn)傳遞@RequestBody參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10基于SpringBoot + Redis實(shí)現(xiàn)密碼暴力破解防護(hù)
在現(xiàn)代應(yīng)用程序中,保護(hù)用戶密碼的安全性是至關(guān)重要的,密碼暴力破解是指通過嘗試多個密碼組合來非法獲取用戶賬戶的密碼,為了保護(hù)用戶密碼不被暴力破解,我們可以使用Spring Boot和Redis來實(shí)現(xiàn)一些防護(hù)措施,本文將介紹如何利用這些技術(shù)來防止密碼暴力破解攻擊2023-06-06