直接上源码:
@Slf4j
@Order
@Configuration
public class PreKeyRedisConfig {
public static final String DEFUAL_PREFIX = "XXX##";
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Autowired
private RedisTemplate redisTemplate;
class PrefixRedisSerializer extends StringRedisSerializer {
@Override
public byte[] serialize(String s) {
if (s == null) {
return null;
}
// 这里加上你需要加上的key前缀
String realKey = DEFUAL_PREFIX + s;
return super.serialize(realKey);
}
@Override
public String deserialize(byte[] bytes) {
String s = bytes == null ? null : new String(bytes);
int index = s.indexOf(DEFUAL_PREFIX);
if (index != -1) {
return s.substring(index + 2);
}
return s;
}
}
@Bean
public StringRedisSerializer stringRedisSerializer() {
StringRedisSerializer serializer = new PrefixRedisSerializer();
redisTemplate.setKeySerializer(serializer);
redisTemplate.afterPropertiesSet();
stringRedisTemplate.setKeySerializer(serializer);
stringRedisTemplate.afterPropertiesSet();
return serializer;
}
}