簡體   English   中英

如何在Redis Cluster中使用Redisson上傳字節數組?

[英]How to use Redisson to upload byte array in Redis Cluster?

我還沒有找到有關如何上傳純字節數組的解釋。 Redisson有一個RBitSet,但是它管理位數組,而不是字節數組。 如何通過使用Redisson存儲字節數組?

這是我的配置:

Config config = new Config();

LoadBalancer loadBalancer = new RoundRobinLoadBalancer();

config.useClusterServers()
        .setScanInterval(5000) // cluster state scan interval in milliseconds
        .addNodeAddress("192.168.0.14:6379", "192.168.0.15:6379")
        .setReadMode(ReadMode.MASTER_SLAVE)
        .setLoadBalancer(loadBalancer)
        .setPassword("bTFBx1NYYWRMTUEyNHhsCg")
        .setSlaveConnectionPoolSize(10)
        .setMasterConnectionPoolSize(10);

RedissonClient redisson = Redisson.create(config);

從2.6.0 / 3.1.0版本開始,Redisson提供RBinaryStream對象。 它公開了OutputStream對象以更方便地使用:

byte[] content = ...

RBinaryStream stream = redisson.getBinaryStream("anyStream");

stream.set(content);
// or
OutputStream os = stream.getOuputStream();
os.write(content);

我在github上得到了幫助。 這是寫字節數組的方法:

RBucket<byte[]> bucket = redisson.getBucket("myBucket", ByteArrayCodec.INSTANCE);
byte[] myarray = ...
bucket.set(myarray);
@Test
public void testPutGet() throws InterruptedException, IllegalArgumentException {
Config config = new Config();
config.useClusterServers().addNodeAddress(“redis://redis://ip:port”);
//config.useSingleServer().setAddress(“redis://127.0.0.1:6379”);
RedissonClient redissonClient= Redisson.create(config);
long startTime = System.nanoTime();
for(int i=0 ;i < 100000 ;i++) { Map val = new HashMap<>();
val.put(“1”, “1”);
String rediskey=”MAP“+i;
RBinaryStream obj = redissonClient.getBinaryStream(rediskey);
RFuture upfuture = obj.setAsync(val.toString().getBytes());
upfuture.handle((conn, exception) -> {

if (exception != null) {
System.out.println(“Fail”);
String msg = exception.getMessage();
try {
throw new Exception(
” fastPutAsync failed ” + “exception msg: ” + msg,
exception.getCause()
);
} catch (Exception e) {
}
}
return conn;
});
RFuture future = obj.getAsync();
future.whenComplete((res, exception) -> {
String msg = “”;
JsonObject resp = null;
if(res == null) {
//System.out.println(“key doesnot exist” );
}
else{
//System.out.println(“val: ” + res);
}
});
}
long spentTime = System.nanoTime() – startTime;
System.out.println(“get spentTime: ” + spentTime);
redissonClient.shutdown();
}

有關詳細信息,請訪問: http : //writeulearn.com/redisson-redis-client-java-code/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM