• 6.1. 通用对象桶(Object Bucket)

    6.1. 通用对象桶(Object Bucket)

    Redisson的分布式RBucketJava对象是一种通用对象桶可以用来存放任类型的对象。 除了同步接口外,还提供了异步(Async)、反射式(Reactive)和RxJava2标准的接口。

    1. RBucket<AnyObject> bucket = redisson.getBucket("anyObject");
    2. bucket.set(new AnyObject(1));
    3. AnyObject obj = bucket.get();
    4. bucket.trySet(new AnyObject(3));
    5. bucket.compareAndSet(new AnyObject(4), new AnyObject(5));
    6. bucket.getAndSet(new AnyObject(6));

    还可以通过RBuckets接口实现批量操作多个RBucket对象:

    1. RBuckets buckets = redisson.getBuckets();
    2. List<RBucket<V>> foundBuckets = buckets.find("myBucket*");
    3. Map<String, V> loadedBuckets = buckets.get("myBucket1", "myBucket2", "myBucket3");
    4. Map<String, Object> map = new HashMap<>();
    5. map.put("myBucket1", new MyObject());
    6. map.put("myBucket2", new MyObject());
    7. // 利用Redis的事务特性,同时保存所有的通用对象桶,如果任意一个通用对象桶已经存在则放弃保存其他所有数据。
    8. buckets.trySet(map);
    9. // 同时保存全部通用对象桶。
    10. buckets.set(map);