问题描述
代码示例:
map = client.getMap(...)
list = client.getList();
map.put(..,list);
...
list.add(....);
...
thelist = map.get(...,)
这里会发生什么?
该列表是否会转换为json ,还是Redisson会找出来并仅使用参考列表?
列表更新会反映在地图上吗?
如果我决定包装RedissonList,将会把我的 wrapper 类序列化为json,而委托列表是对redis列表的引用,还是会序列化呢? / p>
很多问题,但对于掌握什么是可能的和不可行的东西很重要。
map.compute 似乎也没有在本地锁定,因此必须小心。
我建议实现应重写java.util中子类中的所有内容,并注释或注释(仅用于信息性注释),以说该方法仅具有lcal java.util.Map可局部作用。
解决方法
在这种情况下,RMap值保留对RList对象的引用。
map.compute似乎也没有在本地锁定,因此必须小心。
如评论中所述,它甚至没有锁定本地地图:The default implementation makes no guarantees about synchronization or atomicity properties of this method