Java 如何将自己的执行器传递到redis库?
我有以下代码来异步地从Redis获取数据。默认情况下,库中的get()调用使用nio事件线程池 代码1:Java 如何将自己的执行器传递到redis库?,java,redis,lettuce,Java,Redis,Lettuce,我有以下代码来异步地从Redis获取数据。默认情况下,库中的get()调用使用nio事件线程池 代码1: StatefulRedisConnection<String, String> connection = redisClient.connect(); RedisAsyncCommands<String, String> command = connection.async(); CompletionStage<String> result = comma
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisAsyncCommands<String, String> command = connection.async();
CompletionStage<String> result = command.get(id)
.thenAccept(code ->
logger.log(Level.INFO, "Thread Id " + Thread.currentThread().getName());
//Sample code to print thread ID
StatefulRedisConnection=redisClient.connect();
RedisAsyncCommands命令=connection.async();
CompletionStage结果=command.get(id)
.然后接受(代码->
logger.log(Level.INFO,“Thread Id”+Thread.currentThread().getName());
//打印线程ID的示例代码
打印的线程Id为莴苣-6-2
代码2:
CompletionStage<String> result = command.get(id)
.thenAcceptAsync(code -> {
logger.log(Level.INFO, "Thread Id " + Thread.currentThread().getName());
//my original code
}, executors);
CompletionStage result=command.get(id)
.ThenAcceptsSync(代码->{
logger.log(Level.INFO,“Thread Id”+Thread.currentThread().getName());
//我的原始代码
},遗嘱执行人);
打印的线程Id是池-1-Thread-1
我的问题是:
Ashok类
io.莴苣.core.RedisClient
有一个创建者方法:
公共静态RedisClient创建(ClientResources ClientResources,字符串uri){
assertNotNull(clientResources);
lettuceasert.notEmpty(uri,“uri不能为空”);
返回create(clientResources,RedisURI.create(uri));
}
您可以通过ClientResources\35; builder()
构建您的ClientResources
,并传递您想要的任何内容。请参阅,您可以自定义以下内容:
- EventLoopGroupProvider以获取特定的EventLoopGroups
- EventExecutorGroup以执行内部计算任务
- 调度计时器
- 用于客户端事件调度的EventBus
- 事件发布
- CommandLatencyCollector收集延迟详细信息。需要HdrHistogram库
- DnsResolver用于收集延迟详细信息。需要LatencyUtils库
- 重新连接延迟
- 跟踪到跟踪Redis命令