php+redis+设置前缀,spring使用Redis自定义前缀后缀名(去掉SimpleKey []+自定义)

标签:

spring中自动加上 SimpleKey [] 解决方案

13377e64950159ffe85e6809d094acf2.png

一、自定义后缀名

1、定义类实现KeyGenerator接口

MyKeyGenerator

package com.wbg.springRedis.service.impl;

import org.springframework.cache.interceptor.KeyGenerator;

import org.springframework.stereotype.Component;

import java.lang.reflect.Method;

@Component("myKeyGenerator")

public class MyKeyGenerator implements KeyGenerator {

@Override

public Object generate(Object target, Method method, Object... params) {

//返回后缀名

//return method.getName();

//注意,这里不能返回null,否则会报错

//java.lang.IllegalArgumentException:

// Null key returned for cache operation (maybe you are using named params on classes without debug info?) Builder[public java.util.List com.wbg.springRedis.service.impl.RoleServiceImpl.listAll()] caches=[listAll] | key='' | keyGenerator='myKeyGenerator' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false'

return "";

}

}

2、注解使用:

@Cacheable(value = "listAll", keyGenerator = "myKeyGenerator")

58c1fe92ddec997f911169fced795578.png

已经解决

7509d7b6486a26ad595a063b80b2a412.png

二、自定义前缀:

@Bean

RedisCacheManager cacheManager() {

RedisCacheConfiguration configuration = RedisCacheConfiguration

.defaultCacheConfig()

.computePrefixWith(cacheName -> "redis" + cacheName)

.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.string()))

.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.java()));

return RedisCacheManager.builder(redisConnectionFactory()).cacheDefaults(configuration).build();

}

549384896ccfb1556d310440560ef241.png

标签:

来源: https://www.cnblogs.com/weibanggang/p/10191028.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值