使用Redis緩存對象會出現(xiàn)下圖現(xiàn)象:
鍵值對都是亂碼形式。
解決以上問題:
如果是xml配置的
我們直接注入官方給定的keySerializer,valueSerializer,hashKeySerializer即可:
bean id="apiRedisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="apiCacheRedisConnectionFactory">
property name="keySerializer">
bean
class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
/property>
property name="valueSerializer">
bean
class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
/property>
property name="hashKeySerializer">
bean
class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
/property>
property name="hashValueSerializer">
bean
class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
/property>
property name="stringSerializer">
bean
class="org.springframework.data.redis.serializer.StringRedisSerializer" />
/property>
/bean>
spring boot 項目配置RedisConfig的時候使用以下方法:
@Configuration
public class RedisConfig {
@Bean("jsonRedisTemplate")
public RedisTemplateObject, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException {
RedisTemplateObject, Object> template = new RedisTemplateObject, Object>();
template.setConnectionFactory(redisConnectionFactory); //解決日期序列化問題
ObjectMapper om = new ObjectMapper();
om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));
GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(om);
template.setDefaultSerializer(genericJackson2JsonRedisSerializer);
return template;
}
}
Redis存入中文,取出來是亂碼wenti
默認情況下,用redis存入中文,取出時會出現(xiàn)亂碼情況,如圖:
解決
我們再啟動redis時,可以在redis-cli 后面加上 --raw,如圖
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Redis如何存儲對象與集合示例詳解
- 淺談Redis存儲數(shù)據(jù)類型及存取值方法
- redis 存儲對象的方法對比分析