基于redis2.1.6实现spring cache生成的key多出一个冒号

35 篇文章 1 订阅
18 篇文章 0 订阅

用redis来做spring cache时,发现最终生成的key中多了一个冒号,而且有一个空节点的存在:

经查看其源码发现,默认的生成key策略就是用的两个冒号:

package org.springframework.data.redis.cache;

@FunctionalInterface
public interface CacheKeyPrefix {

	
	String compute(String cacheName);

	
	static CacheKeyPrefix simple() {
		return name -> name + "::";
	}
}

 这样导致在用redis desktop manager查看时,会多出一个空节点,解决办法是覆盖其默认的CacheKeyPrefix ,这是一个函数接口,覆盖如下:

 RedisCacheConfiguration config1 = RedisCacheConfiguration.defaultCacheConfig();  // 生成一个默认配置,通过config对象即可对缓存进行自定义配置
        config1 = config1
            .entryTtl(Duration.ofMinutes(120))     // 设置缓存的默认过期时间,也是使用Duration设置
                .disableCachingNullValues()        // 不缓存空值
                .computePrefixWith(name -> name + ":")//覆盖默认的构造key,否则会多出一个冒号
                .serializeValuesWith(SerializationPair.fromSerializer(jackson2JsonRedisSerializer));

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值