免费做企业网站南京市建设工程档案馆网站
免费做企业网站,南京市建设工程档案馆网站,网站开发流程抚州,网站登不了企业建设网银备注#xff1a;记录一次spring-boot redis 配置redis.database后#xff0c;仍然使用db0默认库的情况。 springboot集成redis及相关问题 1. spring boot集成redisredis集成依赖#xff1a;redis配置序列化 2. 集成redission redis分布式锁等快捷管理工具集成依赖配置注入…备注记录一次spring-boot redis 配置redis.database后仍然使用db0默认库的情况。 springboot集成redis及相关问题 1. spring boot集成redisredis集成依赖redis配置序列化 2. 集成redission redis分布式锁等快捷管理工具集成依赖配置注入示例 3. 配置redis database不生效 1. spring boot集成redis redis集成依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- redis依赖commons-pool 这个依赖一定要添加 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependencyredis配置 spring:redis:host: xxxxxport: 6379password: xxxxdatabase: 1jedis:pool:max-active: 10max-idle: 10min-idle: 0序列化 Configuration
public class RedisConfig {/*** Author: Huey* Date: 2024/1/12 18:24* Params:* Return:* Description: 初始化设置redis序列化类型否则会出现乱码**/Beanpublic RedisTemplateString, Object redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplateString, Object template new RedisTemplate();//使用fastjson序列化FastJsonRedisSerializerObject fastJsonRedisSerializer new FastJsonRedisSerializer(Object.class);// value值的序列化采用fastJsonRedisSerializertemplate.setValueSerializer(fastJsonRedisSerializer);template.setHashValueSerializer(fastJsonRedisSerializer);// key的序列化采用StringRedisSerializertemplate.setKeySerializer(new StringRedisSerializer());template.setHashKeySerializer(new StringRedisSerializer());template.setConnectionFactory(redisConnectionFactory);return template;}
} 完成以上配置即redis已经正常集成进入项目。
2. 集成redission redis分布式锁等快捷管理工具 集成依赖 !-- redis便捷分布式锁管理 --dependencygroupIdorg.redisson/groupIdartifactIdredisson-spring-boot-starter/artifactIdversion${redisson.version}/version/dependency配置注入 Configuration
public class RedissionConfig {Value(${spring.redis.host})private String redisHost;Value(${spring.redis.password})private String password;Value(${spring.redis.port})private int port;Value(${spring.redis.database})private int database;Beanpublic RedissonClient getRedisson() {Config config new Config();config.useSingleServer().setAddress(redis:// redisHost : port).setPassword(password)config.setCodec(new JsonJacksonCodec());return Redisson.create(config);}
}示例 完成以上配置即可正常使用了 Autowired
private RedissonClient redissonClient;RLock rLock redissonClient.getLock(lockName);if (rLock.isLocked()) {//当前锁正在使用当前用户还在同步订单不处理业务logger.info(method handleReceiptMsg重复加锁请求入参:{}不处理业务当前锁状态{}, JSONObject.toJSONString(payRqst), rLock.isLocked());return Result.error(handleReceiptMsg重复加锁);}
boolean isLocked rLock.tryLock(RedisLockNameConstants.ORDER_SYNC_LOCK_TIME, TimeUnit.SECONDS);
3. 配置redis database不生效 如果是单独仅集成redisdatabase 配置是肯定生效的因为没有影响这里记录一个遇到的情景 即当spring-boot集成redis后同时集成redission使用redis锁相关管理插件此时配置了RedissonClient注入了Config配置即第二部中的代码部分。而第一步中集成redis时使用redistemplate仅仅只是对其做了序列化至于redistemplate加载的配置全靠程序默认加载那么这里就涉及了一个加载顺序问题。 springboot 的 Configuration 也会默认加载redis的配置步骤二中构建RedissonClient时候也构建了Config对象这个里面会覆盖掉RedisConfig里的配置所以在构建RedissonClient时候设置database即可生效。 Beanpublic RedissonClient getRedisson() {Config config new Config();config.useSingleServer().setAddress(redis:// redisHost : port).setPassword(password)//指定redis db库.setDatabase(database);config.setCodec(new JsonJacksonCodec());return Redisson.create(config);}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88829.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!