1

我有 8 个 Storm Bolt-Executor 并行运行。我有一个统计缓存:地图>

例如 userVisitCache -> ( userId, (roomId, totalVisit)) 任何 8 个并行线程 (Bolt Executor) ,每当在房间内找到用户时将增加计数,如果在房间外找到用户将减少计数。

现在我的问题是,如果我使用 Redisson,那么 userVisitCache.get(userId).put(roomId, visitCount) 线程安全吗?

如果没有,那么我应该使用 userVisitCache.getLock().lock() .. 来锁定缓存吗?在这种情况下,我应该使用 Redisson 读写锁还是通常的 cache.getLock() ?

4

1 回答 1

1

包括 Map 在内的所有 Redisson 对象都是完全线程安全的。

于 2018-05-01T13:08:36.130 回答