Springboot集成redis以及解決redis key亂碼的問題
springboot集成redis
1、導包
<!--springboot中的redis依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- lettuce pool 緩存連接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>2、在RedisAutoConfiguration中找到對應的RedisProperties配置
在yml中配置基本配置
spring:
redis:
host: xxxxxx 自己的ip
port: 6379
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 03、從RedisAutoConfiguration中
看到默認配置了兩個bean RedisTemplate,StringRedisTemplate 而且是基于lettuce是redis-cli客戶端
獲取redisTemplate進行測試即可

從這里看是測試成功的。但是我們從服務器上看對應的key,卻是這個樣子

怎么辦?
原因:
大概是lettuce客戶端連接redis服務器采用的是byte數(shù)組,因此會將對象先轉化為byte數(shù)組,而轉換方法是使用JdkSerializationRedisSerializer 的convert方法轉換,因此需要替換到默認的redisSerializaer

4、 配置redisConfig
解決
自己配置redisConfig,不使用默認的
@Configuration
@EnableCaching
public class RedisConfig {
/**
* 配置自定義redisTemplate
* @return
*/
@Bean
RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
// 設置值(value)的序列化采用Jackson2JsonRedisSerializer。
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
// 設置鍵(key)的序列化采用StringRedisSerializer。
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
idea 客戶端再次運行結果:

服務器 客戶端運行結果:( 注意:中文內容還是會亂碼)

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決SpringBoot使用devtools導致的類型轉換異常問題
這篇文章主要介紹了解決SpringBoot使用devtools導致的類型轉換異常問題,具有很好的參考價值,希望對大家有所幫助。 一起跟隨小編過來看看吧2020-08-08
基于SpringBoot使用Tika實現(xiàn)文檔解析
Apache?Tika是開源內容分析工具,支持多格式文本提取與元數(shù)據(jù)解析,具備語言檢測和MIME類型識別功能,適用于搜索引擎、數(shù)據(jù)分析等場景,在SpringBoot中集成需注意性能及配置問題,支持流式處理和自定義擴展,下面介紹SpringBoot使用Tika實現(xiàn)文檔解析,感興趣的朋友一起看看吧2025-07-07
SpringBoot+WebMagic+MyBaties實現(xiàn)爬蟲和數(shù)據(jù)入庫的示例
WebMagic是一個開源爬蟲框架,本項目通過在SpringBoot項目中使用WebMagic去抓取數(shù)據(jù),最后使用MyBatis將數(shù)據(jù)入庫。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
Java中的字符型文件流FileReader和FileWriter詳細解讀
這篇文章主要介紹了Java中的字符型文件流FileReader和FileWriter詳細解讀,與字節(jié)型文件流不同,字節(jié)型文件流讀取和寫入的都是一個又一個的字節(jié),而字符型文件流操作的單位是一個又一個的字符,字符型流認為一個字母是一個字符,而一個漢字也是一個字符,需要的朋友可以參考下2023-10-10

