1、数据必须存储于同一节点,并且同一hash槽
如果没有,则会抛出异常:
“CROSSSLOT Keys in request don't hash to the same slot(无法将请求中的 CROSSSLOT 密钥哈希写入同一槽中)”
2、如何保障数据位于统一哈希槽
如果需要验证某条数据的哈希槽,可以使用如下命令:
CLUSTER KEYSLOT yourKey
为了保障数据用于计算哈希槽的数据相同,可以使key分段,并且把用于区分的部分用大括号括起来:
例如这样的key ---> {user1}:myset
redis会仅使用“user1”这个字符串进行计算哈希槽
3、如何使用Redisson中的pipline
RedissonClient redisson;
RBatch batch;
batch =redisson.createBatch();
batch.timeout(20, TimeUnit.SECONDS);
batch.atomic();
batch.getList("list1").readAllAsync();//记得一定要加readAllAsync或者getAsync之类的方法
batch.getList("list2").readAllAsync();
BatchResult<?> result = batch.execute();
BatchResult这个类,实现了List接口,可以直接迭代获取每一个操作的值