描述
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、陵川ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的陵川網(wǎng)站制作公司
使用springboot整合redis,使用默認(rèn)的序列化配置,然后使用redis-client去查詢時(shí)查詢不到相應(yīng)的key.
使用工具發(fā)現(xiàn),key的前面多了\xAC\xED\x00\x05t\x00!這樣一個(gè)串.
而且value也是不能直觀可見的.
問題所在
使用springdataredis,默認(rèn)情況下是使用org.springframework.data.redis.serializer.JdkSerializationRedisSerializer這個(gè)類來做序列化.
org.springframework.data.redis.core.RedisTemplate代碼塊.
public void afterPropertiesSet() { super.afterPropertiesSet(); boolean defaultUsed = false; if (defaultSerializer == null) { defaultSerializer = new JdkSerializationRedisSerializer( classLoader != null ? classLoader : this.getClass().getClassLoader()); } if (enableDefaultSerializer) { if (keySerializer == null) { keySerializer = defaultSerializer; defaultUsed = true; } if (valueSerializer == null) { valueSerializer = defaultSerializer; defaultUsed = true; } if (hashKeySerializer == null) { hashKeySerializer = defaultSerializer; defaultUsed = true; } if (hashValueSerializer == null) { hashValueSerializer = defaultSerializer; defaultUsed = true; } } if (enableDefaultSerializer && defaultUsed) { Assert.notNull(defaultSerializer, "default serializer null and not all serializers initialized"); } if (scriptExecutor == null) { this.scriptExecutor = new DefaultScriptExecutor(this); } initialized = true; }
解決
手動(dòng)設(shè)置key的序列化方式為StringRedisSerializer,強(qiáng)制使用.
由于spring不支持泛型注入,這樣會(huì)導(dǎo)致所有的redisTemplate的key序列方式都為StringRedisSerializer. 同時(shí),最好在序列化對(duì)象保存時(shí)候手動(dòng)將其轉(zhuǎn)為json串后存入redis.易于在可視化工具中直接查看對(duì)應(yīng)value
@Bean public RedisTemplateredisTemplate(RedisConnectionFactory factory) { RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(factory); RedisSerializer stringRedisSerializer = new StringRedisSerializer();//Long類型不可以會(huì)出現(xiàn)異常信息; redisTemplate.setKeySerializer(stringRedisSerializer); return redisTemplate; }
以上所述是小編給大家介紹的springboot整合spring-data-redis遇到的坑,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!