Springboot集成redis以及解決redis key亂碼的問題
springboot集成redis
1、導(dǎo)包
<!--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中找到對應(yīng)的RedisProperties配置
在yml中配置基本配置
spring:
redis:
host: xxxxxx 自己的ip
port: 6379
lettuce:
pool:
max-active: 8
max-wait: -1
max-idle: 8
min-idle: 03、從RedisAutoConfiguration中
看到默認(rèn)配置了兩個(gè)bean RedisTemplate,StringRedisTemplate 而且是基于lettuce是redis-cli客戶端
獲取redisTemplate進(jìn)行測試即可

從這里看是測試成功的。但是我們從服務(wù)器上看對應(yīng)的key,卻是這個(gè)樣子

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

4、 配置redisConfig
解決
自己配置redisConfig,不使用默認(rèn)的
@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);
// 設(shè)置值(value)的序列化采用Jackson2JsonRedisSerializer。
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
// 設(shè)置鍵(key)的序列化采用StringRedisSerializer。
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
idea 客戶端再次運(yùn)行結(jié)果:

服務(wù)器 客戶端運(yùn)行結(jié)果:( 注意:中文內(nèi)容還是會亂碼)

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

