Jedis 是 Redis 官方推出的一款面向 Java 的客戶端,提供了許多介面供 Java 語言呼叫。可以在Redis 官網下載. Spring-data-redis 是spring 大家族的一部分,提供了在srping 應用中通過簡單的配置訪問redis 服務,對reids 底層開發包(Jedis, JRedis, and RJC)進行了高度封裝, RedisTemplate 提供了redis 各種操作
spring-data-redis 針對jedis 提供了下列功能:
連線池自動管理,提供了一個高度封裝的「RedisTemplate ”類別.
針對jedis 用戶端中大量api 進行了歸類封裝,將相同類型操作封裝為operation 介面.
ValueOperations :簡單K-V 操作
SetOperations:set 類型資料操作
ZSetOperations:zset 類型資料操作
HashOperations:針對map 類型的資料操作
ListOperations:針對list 類型的資料操作
3.將事務操作封裝,有容器控制。
4.針對資料的“序列化/反序列化”,提供了多種可選擇策略(RedisSerializer)
JdkSerializationRedisSerializer:POJO 物件的存取場景,使用JDK 本身序列化機制.
StringRedisSerializer:Key 或value 為字串的場景,根據指定的charset 對資料的位元組序列編碼成string,是「new String(bytes, charset)」和「string.getBytes(charset )」的直接封裝。是最輕量級和高效的策略。
JacksonJsonRedisSerializer:jackson-json 工具提供了 javabean 與 json 之 間的轉換能力,可以將 pojo 實例序列化成 json 格式儲存在 redis 中,也可以將 json 格式的資料轉換成 pojo 實例。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
spring: redis: host: 192.168.31.100 port: 6379 password: 111 database: 0 pool: max-active: 8 # 连接池最大连接数(使用负值表示没有限制) max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) max-idle: 8 # 连接池中的最大空闲连接 min-idle: 0 # 连接池中的最小空闲连接 timeout: 5000ms # 连接超时时间(毫秒)
在application.yml檔案中spring下新增如上設定
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; } }
在組態包中新增此組態
此組態類別的作用是將後端將要傳過去的資料json序列化,如果沒有此組態的話後端傳過去的格式和redis端的不合碼情況
在需要使用的地方注入註入後就可以使用了
(1)
(2)
#以上是SpringBoot整合如何使用Redis的詳細內容。更多資訊請關注PHP中文網其他相關文章!