- 1. Overview
- 1. 概述
- 2. Configuration
- 2. 配置方法
- 3. Operations execution
- 3. 程序接口调用方式
- 4. Data serialization
- 4. 数据序列化
- 5. Data partitioning(sharding)
- 5. 单个集合数据分片(Sharding)
- 5.1. Common operations over objects
- 6. Distributed objects
- 6. 分布式对象
- 7. Distributed collections
- 7. 分布式集合
- 8. Distributed locks and synchronizers
- 8. 分布式锁和同步器
- 9. Distributed services
- 9. 分布式服务
- 10. Additional features
- 10. 额外功能
- 11. Redis commands mapping
- 11. Redis 命令和 Redisson 对象匹配列表
- 12. Standalone node
- 12. 独立节点模式
- 13. Tools
- 13. 工具
- 14. Integration with frameworks
- 14. 第三方框架整合
- 15. Dependency list
- 15. 项目依赖列表
- 16. FAQ
- 16. Observability
3. 程序接口调用方式
RedissonClient
、 RedissonReactiveClient
和 RedissonRxClient
实例本身和 Redisson 提供的所有分布式对象都是线程安全的。
Redisson 为每个操作都提供了自动重试策略,当某个命令执行失败时,Redisson 会自动进行重试。自动重试策略可以通过修改 retryAttempts
(默认值:3)参数和 retryInterval
(默认值:1000 毫秒)参数来进行优化调整。当等待时间达到 retryInterval
指定的时间间隔以后,将自动重试下一次。全部重试失败以后将抛出错误。
Redisson 框架提供的几乎所有对象都包含了 同步
和 异步
相互匹配的方法。这些对象都可以通过 RedissonClient
接口获取。同时还为大部分 Redisson 对象提供了满足 异步流处理标准
的程序接口 RedissonReactiveClient
。除此外还提供了 RxJava2
规范的 RedissonRxClient
程序接口。
以下是关于使用 RAtomicLong
对象的范例:
RedissonClient client = Redisson.create(config);
RAtomicLong longObject = client.getAtomicLong('myLong');
// 同步执行方式
longObject.compareAndSet(3, 401);
// 异步执行方式
RFuture<Boolean> result = longObject.compareAndSetAsync(3, 401);
RedissonReactiveClient client = Redisson.createReactive(config);
RAtomicLongReactive longObject = client.getAtomicLong('myLong');
// 异步流执行方式
Mono<Boolean> result = longObject.compareAndSet(3, 401);
RedissonRxClient client = Redisson.createRx(config);
RAtomicLongRx longObject= client.getAtomicLong("myLong");
// RxJava2 方式
Flowable<Boolean result = longObject.compareAndSet(3, 401);
3.1. 异步执行方式
几乎所有的 Redisson 对象都实现了一个异步接口,异步接口提供的方法名称与其同步接口的方法名称相互匹配。例如:
// RAtomicLong 接口继承了 RAtomicLongAsync 接口
RAtomicLongAsync longObject = client.getAtomicLong("myLong");
RFuture<Boolean> future = longObject.compareAndSetAsync(1, 401);
异步执行的方法都会返回一个实现了 RFuture
接口的对象。该对象同时提供了 java.util.concurrent.CompletionStage
和 java.util.concurrent.Future
两个异步接口。
future.whenComplete((res, exception) -> {
// ...
});
// 或者
future.thenAccept(res -> {
// 处理返回
}).exceptionally(exception -> {
// 处理错误
});
3.2. 异步流执行方式
Redisson 为大多数分布式数据结构提供了满足 Reactor 项目的 异步流处理标准 的程序接口。该接口通过两种方式实现:
基于 Project Reactor 标准的实现方式。使用范例如下:
RedissonReactiveClient client = Redisson.createReactive(config);
RAtomicLongReactive atomicLong = client.getAtomicLong("myLong");
Mono<Boolean> cs = longObject.compareAndSet(10, 91);
Mono<Long> get = longObject.get();
Publisher<Long> getPublisher = longObject.get();
基于 RxJava2 标准的实现方式。使用范例如下:
RedissonRxClient client = Redisson.createRx(config);
RAtomicLongRx atomicLong = client.getAtomicLong("myLong");
Single<Boolean> cs = longObject.compareAndSet(10, 91);
Single<Long> get = longObject.get();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论