【问题标题】:How to use Redisson to upload byte array in Redis Cluster?如何使用 Redisson 在 Redis Cluster 中上传字节数组?
【发布时间】:2017-03-15 01:41:20
【问题描述】:

我还没有找到关于如何上传纯字节数组的解释。 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);

【问题讨论】:

    标签: java caching redis client redisson


    【解决方案1】:

    我在 github 上得到了帮助。以下是如何编写字节数组:

    RBucket<byte[]> bucket = redisson.getBucket("myBucket", ByteArrayCodec.INSTANCE);
    byte[] myarray = ...
    bucket.set(myarray);
    

    【讨论】:

    • 所以我们需要将键作为字符串?如果我们也将键作为字节数组呢? redisson.getBucket(byte[] key, codec)??生菜有一个方法
    【解决方案2】:

    从 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 2020-01-22
      相关资源
      最近更新 更多