【发布时间】:2020-09-17 13:40:59
【问题描述】:
代码示例:
map = client.getMap(...)
list = client.getList();
map.put(.., list);
...
list.add(....);
...
thelist = map.get(...,)
这里会发生什么?
列表会被转换为 json,还是 Redisson 会弄清楚并仅使用参考列表?
列表的更新会反映在地图中吗?
如果我决定包装 RedissonList 会发生什么,我的 wrapper 类会被序列化为 json,而委托列表是对 redis 列表的引用,还是也会被序列化。
许多问题,但重要的是要掌握什么是可能的,什么是不可能的。
map.compute 似乎也没有在本地锁定,所以必须小心。
我建议实现应该覆盖其子类中 java.util 中的所有内容并注释或注释(仅提供信息性注释)以说明此方法仅具有本地 java.util.Map 工作本地效果。
【问题讨论】:
-
嗨,嗯,除了 map.compute 之外,您的其他问题是否得到了答案?例如,列表的更新会反映在地图中吗?
-
我认为他在下面回答,但我从那个项目继续前进。我不认为这是一个实用的库。我在 Jedis 之上构建了一些卓越的东西,保留了完全的灵活性和控制力。
-
他的回答似乎更多地是关于
map.compute,而不是列表的更新反映在地图中。那很有意思!它是开源的吗?可以分享一下吗? -
不是,因为需要花费大量时间来确保所有内容都是针对一致的 API 编写的,而不是强迫人们使用底层机制 (Jedis)。到目前为止,我个人需要的功能是一个包装 API,用于与 Jedis 通信,进而与 Redis 通信。写了一堆东西,地图,列表,流,队列,事件,但不是每个的所有功能。我可能会尽快将它作为开源发布。然后也许社区可以填补空白,但太多其他优先事项使我不再优先考虑,因为我已经拥有了我需要的东西。
-
@Enoobong 过去一周我一直致力于发布一系列软件,很快我将尝试发布该库的第一个版本。