Redisson RRingBuffer容量不能在同一个key下动态改变

Redisson RRingBuffer capacity cannot be changed dynamically under the same key

目前我正在开发我想使用 Redis 存储一些数据的软件。 具体来说,我想在最初设置容量的地方使用 RRingBuffer,它可以在运行时更改。我的想法是创建一个新的 RB,并将 oldRB 中的数据移动到 newRB 例如,也许这是错误的:

    // has some data that is created earlier with a capacity of 4
    final RRingBuffer<String> oldRB = cache.get(SOME_KEY);
    
    log.info(oldRB);

    // new ring buffer with  
    final RRingBuffer<String> newRB = redisson.getRingBuffer(A_NEW_RING_BUFFER);
    newRB.trySetCapacity(3);

    add the data from oldRB to newRB...

    cache.put(SOME_KEY, newRB)
    
    log.info(newRB)
    -------------------------------------------
    CONSOLE:
    info: ["one", "two", "three", "four", "five"]
    info: ["three", "four", "five"]

这最初是有效的,但 Redis 似乎用初始容量缓存了这个 RB,并且无法更改它。

RRingBuffer.setCapacity() Redisson 3.13.5 添加的方法。因此,您可以在不复制缓冲区状态的情况下更改容量。