提交 4a41bfef 编写于 作者: N Nikita Koksharov

Feature - Add RBucketsReactive and RBucketsRx objects #2604

上级 aeb4567a
......@@ -159,6 +159,16 @@ public class RedissonReactive implements RedissonReactiveClient {
return ReactiveProxyBuilder.create(commandExecutor, new RedissonBucket<V>(codec, commandExecutor, name), RBucketReactive.class);
}
@Override
public RBucketsReactive getBuckets() {
return ReactiveProxyBuilder.create(commandExecutor, new RedissonBuckets(commandExecutor), RBucketsReactive.class);
}
@Override
public RBucketsReactive getBuckets(Codec codec) {
return ReactiveProxyBuilder.create(commandExecutor, new RedissonBuckets(codec, commandExecutor), RBucketsReactive.class);
}
@Override
public <V> List<RBucketReactive<V>> findBuckets(String pattern) {
RKeys redissonKeys = new RedissonKeys(commandExecutor);
......
......@@ -147,6 +147,16 @@ public class RedissonRx implements RedissonRxClient {
return RxProxyBuilder.create(commandExecutor, new RedissonBucket<V>(codec, commandExecutor, name), RBucketRx.class);
}
@Override
public RBucketsRx getBuckets() {
return RxProxyBuilder.create(commandExecutor, new RedissonBuckets(commandExecutor), RBucketsRx.class);
}
@Override
public RBucketsRx getBuckets(Codec codec) {
return RxProxyBuilder.create(commandExecutor, new RedissonBuckets(codec, commandExecutor), RBucketsRx.class);
}
@Override
public <V> RHyperLogLogRx<V> getHyperLogLog(String name) {
return RxProxyBuilder.create(commandExecutor, new RedissonHyperLogLog<V>(commandExecutor, name), RHyperLogLogRx.class);
......
/**
* Copyright (c) 2013-2020 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.api;
import reactor.core.publisher.Mono;
import java.util.Map;
/**
* Operations over multiple Bucket objects.
*
* @author Nikita Koksharov
*
*/
public interface RBucketsReactive {
/**
* Returns Redis object mapped by key. Result Map is not contains
* key-value entry for null values.
*
* @param <V> type of value
* @param keys - keys
* @return Map with name of bucket as key and bucket as value
*/
<V> Mono<Map<String, V>> get(String... keys);
/**
* Try to save objects mapped by Redis key.
* If at least one of them is already exist then
* don't set none of them.
*
* @param buckets - map of buckets
* @return <code>true</code> if object has been set otherwise <code>false</code>
*/
Mono<Boolean> trySet(Map<String, ?> buckets);
/**
* Saves objects mapped by Redis key.
*
* @param buckets - map of buckets
* @return void
*/
Mono<Void> set(Map<String, ?> buckets);
}
/**
* Copyright (c) 2013-2020 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.api;
import io.reactivex.Completable;
import io.reactivex.Single;
import java.util.Map;
/**
* Operations over multiple Bucket objects.
*
* @author Nikita Koksharov
*
*/
public interface RBucketsRx {
/**
* Returns Redis object mapped by key. Result Map is not contains
* key-value entry for null values.
*
* @param <V> type of value
* @param keys - keys
* @return Map with name of bucket as key and bucket as value
*/
<V> Single<Map<String, V>> get(String... keys);
/**
* Try to save objects mapped by Redis key.
* If at least one of them is already exist then
* don't set none of them.
*
* @param buckets - map of buckets
* @return <code>true</code> if object has been set otherwise <code>false</code>
*/
Single<Boolean> trySet(Map<String, ?> buckets);
/**
* Saves objects mapped by Redis key.
*
* @param buckets - map of buckets
* @return void
*/
Completable set(Map<String, ?> buckets);
}
......@@ -255,6 +255,22 @@ public interface RedissonReactiveClient {
*/
<V> RBucketReactive<V> getBucket(String name, Codec codec);
/**
* Returns interface for mass operations with Bucket objects.
*
* @return Buckets
*/
RBucketsReactive getBuckets();
/**
* Returns interface for mass operations with Bucket objects
* using provided codec for object.
*
* @param codec - codec for bucket objects
* @return Buckets
*/
RBucketsReactive getBuckets(Codec codec);
/**
* Returns a list of object holder instances by a key pattern
*
......
......@@ -253,6 +253,22 @@ public interface RedissonRxClient {
*/
<V> RBucketRx<V> getBucket(String name, Codec codec);
/**
* Returns interface for mass operations with Bucket objects.
*
* @return Buckets
*/
RBucketsRx getBuckets();
/**
* Returns interface for mass operations with Bucket objects
* using provided codec for object.
*
* @param codec - codec for bucket objects
* @return Buckets
*/
RBucketsRx getBuckets(Codec codec);
/**
* Returns HyperLogLog instance by name.
*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册