Lettuce

Is there a way to auto discover new cluster node IP in Redis Cluster with Lettuce

好久不见. 提交于 2021-01-29 06:58:30
问题 I have a Redis Cluster (3 master and 3 slaves) running inside a Kubernetes cluster. The cluster is exposed via a Kubenetes-Service (Kube-Service) . I have my application server connected to the Redis Cluster (using the Kube-Service as the URI) via the Lettuce java client for Redis. I also have the following client options set on the Lettuce connection object: ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder() .enablePeriodicRefresh(Duration

Is there a way to auto discover new cluster node IP in Redis Cluster with Lettuce

爱⌒轻易说出口 提交于 2021-01-29 06:56:49
问题 I have a Redis Cluster (3 master and 3 slaves) running inside a Kubernetes cluster. The cluster is exposed via a Kubenetes-Service (Kube-Service) . I have my application server connected to the Redis Cluster (using the Kube-Service as the URI) via the Lettuce java client for Redis. I also have the following client options set on the Lettuce connection object: ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder() .enablePeriodicRefresh(Duration

Spring Data Redis 使用Lettuce在Redis集群中无法高可用

落爺英雄遲暮 提交于 2021-01-23 00:27:25
Spring Data Redis 使用Lettuce在Redis集群中无法高可用 Spring boot 2.1.X 下Spring-data-redis-start 使用 Lettuce 作为Redis连接池 问题场景 在App运行期间Redis集群中某个Master节点 Shutdown,导致应用连接Redis报错,错误信息 连接超时。 解决方案 Lettuce 解决方法 使用 RedisClusterClient.reloadPartitions 自动reload pattitions。 链接地址: https://lettuce.io/core/release/reference/index.html#redis-cluster.refreshing-the-cluster-topology-view Spring-data-redis 解决方法 重写 RedisConnectionFactory Bean @Data @Component public class RedisConfig { @Autowired RedisProperties redisProperties; @Bean public RedisConnectionFactory newLettuceConnectionFactory() { ClusterTopologyRefreshOptions

spring-data-redis lettuce cluster scan 问题

假如想象 提交于 2021-01-22 21:07:31
如果redis 集群中某一台master down ,并且由一台slave 节点升级为master ,在使用spring-data-redis 执行scan 的时候还是会继续去连接down 的节点。导致异常。看了下是lettuce 的问题。因为原生的lettuce 使用也有问题。解决方案,就是过滤掉down 的节点。 Partitions partitions = connection.getPartitions(); System.out.println(partitions); RedisAdvancedClusterCommands<String, String> sync = connection.sync(); for (RedisClusterNode partition : partitions) { if (partition.isConnected() && partition.is(RedisClusterNode.NodeFlag.MASTER)) { RedisClusterCommands<String, String> syncConnection = sync.getConnection(partition.getNodeId()); KeyScanCursor<String> scan = syncConnection.scan(match);

Redis连接池是否有必要?

安稳与你 提交于 2021-01-21 18:08:07
先上结论 redis连接池主要作用体现在执行阻塞命令以及事务,通常情况下没有使用连接池的必要。 如何使用 先来看一下spring boot场景下如何使用redis。spring boot为各种sql,nosql提供了开箱即用的starter。这里关注如何配置集成redis,关于如何使用参考spring data redis文档。先来看一段spring boot document关于spring-boot-starter-data-redis的描述: Spring Boot offers basic auto-configuration for the Lettuce and Jedis client libraries and the abstractions on top of them provided by Spring Data Redis .By default, it uses Lettuce . By default, if commons-pool2 is on the classpath, you get a pooled connection factory. spring boot默认使用lettuce作为客户端,连接池需要依赖 commons-pool2 。所以pom里声明如下依赖: <dependency> <groupId>org

python测试框架&&数据生成&&工具最全资源汇总

你。 提交于 2021-01-16 06:14:16
xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本 pytest - 成熟且功能强大的单元测试框架 plugincompat - pytest的执行及兼容性插件 nosetests - 让python测试更容易一点 slash - python实现的单元测试框架 extensions 扩展 proboscis - 仿TestNG扩展了unittest模块以及Nose的功能 grail - 可以让你一步一步编写测试用例的库 testify - 单元测试框架,提供了加强型fixture,用例切割并行运行,testrunner高亮及详尽的log和report功能 trial - unittest模块的扩展,提供了命令行的testrunner工具以及代码覆盖率的整合,跟nose差不多 subunit - 提供了unittest在另一个进程执行用例并汇总测试数据的能力 testresources - 提供了多用例间管理测试数据的机制,兼容unittest testtools - 为Twisted和Bazaar提供的unittest扩展 Sancho - 运行用例,并为失败的用例提供报告,但仅限于此 zope.testing

Spring Data Redis Lettuce Connection Issue

自闭症网瘾萝莉.ら 提交于 2021-01-05 14:37:53
问题 I have spring boot application with MYSQL DB and i am caching the data in Redis in server layer with @Cacheable Annotation @Cacheable(value= "employeeCache", key= "#customerId") @Override public Customer getEmployee(String customerId) { Optional<Customer> cust = customerRepository.findById(Long.parseLong(customerId)); if(cust.isPresent()) { return cust.get(); } return null; } I am using 1 Master 2 Slave and 2 sentinel node, i have deployed the application in docker containers, in AWS ec2

SpringBoot整合Redis分布式锁Redisson(单机)

 ̄綄美尐妖づ 提交于 2020-11-22 04:34:39
环境:SpringBoot2.x maven增加配置 <!-- redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--springboot2.0的redis整合包多出lettuce连接池,需要增加commons-pool2包 1.5的版本默认采用的连接池技术是jedis 2.0以上版本默认连接池是lettuce spring boot 2.0 的操作手册有标注 大家可以去看看 地址是:https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.4.2</version> </dependency> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId>

聊聊spring-boot-starter-data-redis的配置变更

青春壹個敷衍的年華 提交于 2020-11-03 15:52:00
本文主要研究一下spring-boot-starter-data-redis的配置变更 配置变更 以前是spring-boot的1.4.x版本的(spring-data-redis为1.7.x版本),最近切到2.0.4.RELEASEB版本(spring-data-redis为2.0.5.RELEASE版本),发现配置有变更。 旧版配置 spring.redis.database=0 spring.redis.host=192.168.99.100 spring.redis.port=6379 # spring.redis.password= # Login password of the redis server. spring.redis.pool.max-active=8 spring.redis.pool.max-idle=8 spring.redis.pool.max-wait=-1 spring.redis.pool.min-idle=0 # spring.redis.sentinel.master= # Name of Redis server. # spring.redis.sentinel.nodes= # Comma-separated list of host:port pairs. spring.redis.timeout=10 新版本配置 spring

SpringBoot系列: Redis 共享Session

元气小坏坏 提交于 2020-10-28 11:54:01
Web项目Session管理是一个很重要的话题, 涉及到系统横向扩展, SpringBoot已经为共享Session很好的解决方案, 这篇文章关注使用Redis共享会话, 同时这也是最常用的方法. ============================ pom.xml 增加依赖 ============================ SpringBoot2 已经将Redis底层客户端从Jedis切换为Lettuce库, Lettuce 是基于Netty的实现, 比 Jedis 更加高效, 并且是线程安全的, 能满足多线程环境下并发需求, 同时支持线程池. 使用 Lettuce 客户端(推荐), pom.xml的依赖有: < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-data-redis </ artifactId > </ dependency > < dependency > < groupId > org.apache.commons </ groupId > < artifactId > commons-pool2 </ artifactId > </ dependency > <!-- Session 依赖 --> <