redissonclient类_Redisson程序接口调用方式

Redisson提供自动重试策略,确保命令执行。其对象是线程安全的,支持同步、异步和异步流处理。本文通过示例介绍了RAtomicLong的同步、异步执行及异步流处理方式,包括监听器和Reactor的使用。
摘要由CSDN通过智能技术生成

Redisson为每个操作都提供了自动重试策略,当某个命令执行失败时,Redisson会自动进行重试。自动重试策略可以通过修改retryAttempts(默认值:3)参数和retryInterval(默认值:1000毫秒)参数来进行优化调整。当等待时间达到retryInterval指定的时间间隔以后,将自动重试下一次。全部重试失败以后将抛出错误。

Redisson实例本身和Redisson框架提供的所有对象都是线程安全的。

Redisson框架提供的几乎所有对象都包含了同步和异步相互匹配的方法。这些对象都可以通过RedissonClient接口获取。同时还为大部分Redisson对象提供了满足异步流处理标准的程序接口RedissonReactiveClient。

以下是关于使用RAtomicLong对象的范例:

RedissonClient client = Redisson.create(config);

RAtomicLong longObject = client.getAtomicLong('myLong');

// 同步执行方式

longObject.compareAndSet(3, 401);

// 异步执行方式

longObject.compareAndSetAsync(3, 401);

RedissonReactiveClient client = Redisson.createReactive(config);

RAtomicLongReactive longObject = client.getAtomicLong('myLong');

// 异步流执行方式

longObject.compareAndSet(3, 401);

1. 异步执行方式

几乎所有的Redisson对象都实现了一个异步接口,异步接口提供的方法名称与其同步接口的方法名称相互匹配。例如:

// RAtomicLong接口继承了RAtomicLongAsync接口

RAtomicLongAsync longObject = client.getAtomicLong("myLong");

RFuture future = longObject.compareAndSetAsync(1, 401);

异步执行的方法都会返回一个实现了RFuture接口的对象。通过向这个对象添加监听器可以实现非阻塞的执行方式。

// JDK 1.8+ 适用

future.whenComplete((res, exception) -> {

// ...

});

// 或者

future.thenAccept(res -> {

// 处理返回

}).exceptionally(exception -> {

// 处理错误

});

// JDK 1.6+ 适用

future.addListener(new FutureListener() {

@Override

public void operationComplete(Future future) throws Exception {

if (future.isSuccess()) {

// 取得结果

Boolean result = future.getNow();

// ...

} else {

// 对发生错误的处理

Throwable cause = future.cause();

}

}

});

2. 异步流执行方式

Redisson提供了满足Reactor项目的异步流处理标准的程序接口。所有Redisson异步流对象都可以通过一个单独的RedissonReactiveClient接口来获取。该功能要求JDK 7或以上版本。使用范例如下:

RedissonReactiveClient client = Redisson.createReactive(config);

RAtomicLongReactive longObject = client.getAtomicLong("myLong");

Publisher csPublisher = longObject.compareAndSet(10, 91);

Publisher getPublisher = longObject.get();

RMap map = client.getMap("mapMap");

Observable observable = RxReactiveStreams.toObservable(map.put("1", 324));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值