【发布时间】:2018-05-01 21:08:36
【问题描述】:
我有 8 个 Storm Bolt-Executor 并行运行。 我有一个统计缓存:地图>
例如userVisitCache -> ( userId, (roomId, totalVisit)) 8 个并行线程(Bolt Executor)中的任何一个,只要在房间内找到用户,就会增加计数,如果在房间外找到用户,则会减少计数。
现在我的问题是如果我使用 Redisson ,那么是 userVisitCache.get(userId).put(roomId, visitCount)
线程安全?
如果不是,那么我应该使用 userVisitCache.getLock().lock() .. 来锁定缓存吗? 在这种情况下,我应该使用 Redisson 读写锁还是通常的 cache.getLock() ?
【问题讨论】: