Redisson将ArrayList或RList放在RMap中会发生什么?

问题描述

代码示例:

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