我有 8 个 Storm Bolt-Executor 并行运行。我有一个统计缓存:地图>
例如 userVisitCache -> ( userId, (roomId, totalVisit)) 任何 8 个并行线程 (Bolt Executor) ,每当在房间内找到用户时将增加计数,如果在房间外找到用户将减少计数。
现在我的问题是,如果我使用 Redisson,那么 userVisitCache.get(userId).put(roomId, visitCount)
线程安全吗?
如果没有,那么我应该使用 userVisitCache.getLock().lock() .. 来锁定缓存吗?在这种情况下,我应该使用 Redisson 读写锁还是通常的 cache.getLock() ?