Python 官方文档:入门教程 => 点击学习
properties中配置 #Redis redis.masterClusternodes=10.40.57.197:7000;10.40.57.198:7002;10.40.
#Redis
redis.masterClusternodes=10.40.57.197:7000;10.40.57.198:7002;10.40.57.199:7004
redis.slaveClusterNodes=10.40.57.197:7001;10.40.57.198:7003;10.40.57.199:7005
redis.maxTotal=50
redis.maxIdle=10
redis.minIdle=1
redis.maxWaitMillis=1000
redis.testOnBorrow=true
redis.testOnReturn=true
redis.timeout=10000
redis.lockExpireSeconds=5
redis.soTimeout=1000
redis.maxAttempts=3
redis.passWord=123456
redis.clientName=clientName
redis.keyPrefix=0000-->
@Component
@ConfigurationProperties(prefix = "redis")
@PropertySource("classpath:redis.properties")
public class RedisProperties {
private String masterClusterNodes;
private String slaveClusterNodes;
private int timeout;
private int soTimeout;
private int maxAttempts;
private String password;
private int maxTotal;
private int maxIdle;
private int minIdle;
private int maxWaitMillis;
private boolean testOnBorrow;
private boolean testOnReturn;
private String keyPrefix;
sets,gets
}
这个还是需要优化的
@Component
public class MyStringSerializer implements RedisSerializer<String> {
private final Logger logger = LoggerFactory.getLogger ( this.getClass () );
@Autowired
private RedisProperties redisProperties;
private final Charset charset;
public MyStringSerializer() {
this ( Charset.forName ( "UTF8" ) );
}
public MyStringSerializer(Charset charset) {
Assert.notNull ( charset, "Charset must not be null!" );
this.charset = charset;
}
@Override
public String deserialize(byte[] bytes) {
String keyPrefix = redisProperties.geTKEyPrefix ();
String saveKey = new String ( bytes, charset );
int indexOf = saveKey.indexOf ( keyPrefix );
if (indexOf > 0) {
logger.info ( "key缺少前缀" );
} else {
saveKey = saveKey.substring ( indexOf );
}
logger.info ( "saveKey:{}",saveKey);
return (saveKey.getBytes () == null ? null : saveKey);
}
@Override
public byte[] serialize(String string) {
String keyPrefix = redisProperties.getKeyPrefix ();
String key = keyPrefix + string;
logger.info ( "key:{},getBytes:{}",key, key.getBytes ( charset ));
return (key == null ? null : key.getBytes ( charset ));
}
}
redisConfig 配置
@Configuration
@EnableCaching
public class RedisConfig extends CachinGConfigurerSupport {
private final Logger logger = LoggerFactory.getLogger ( this.getClass () );
@Autowired
private RedisProperties redisProperties;
@Autowired
private MyStringSerializer myStringSerializer;
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory ( redisClusterConfiguration (),
jedisPoolConfig () );
jedisConnectionFactory.setPassword ( redisProperties.getPassword () );
jedisConnectionFactory.setTimeout ( redisProperties.getTimeout () );
return jedisConnectionFactory;
}
@Bean
public RedisClusterConfiguration redisClusterConfiguration() {
String[] ipPorts = redisProperties.getClusterNodes ().split ( ";" );
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration ( Arrays.asList ( ipPorts
) );
return redisClusterConfiguration;
}
@Bean
public JedisPoolConfig jedisPoolConfig() {
JedisPoolConfig jedisPoolConfig = BeanMapperUtil.map ( redisProperties,
JedisPoolConfig.class );
return jedisPoolConfig;
}
@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
RedisCacheManager redisCacheManager = new RedisCacheManager ( redisTemplate );
redisCacheManager.setDefaultExpiration ( 60 * 60 );
return redisCacheManager;
}
@Bean
public RedisTemplate<String, String> redisTemplate() {
StringRedisTemplate template = new StringRedisTemplate ( jedisConnectionFactory () );
Jackson2JSONRedisSerializer jackson2jsonRedisSerializer = new Jackson2JsonRedisSerializer ( Object.class );
ObjectMapper om = new ObjectMapper ();
om.setVisibility ( PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY );
om.enableDefaultTyping ( ObjectMapper.DefaultTyping.NON_FINAL );
jackson2JsonRedisSerializer.setObjectMapper ( om );
template.setKeySerializer ( myStringSerializer );
template.setHashKeySerializer ( myStringSerializer );
template.setValueSerializer ( jackson2JsonRedisSerializer );
template.afterPropertiesSet ();
return template;
}
}
到此这篇关于SpringBoot Redis设置key前缀的方法步骤的文章就介绍到这了,更多相关springboot Redis key前缀内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Springboot Redis设置key前缀的方法步骤
本文链接: https://www.lsjlt.com/news/125005.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0