java - 从服务器的角度来看,我什么时候应该使用 Redis 而不是像 HashMap 或 ConcurrentHashMaps 这样的 DS

标签 java redis hashmap

我的 key 由一些不一定需要 Redis 的非原始对象组成,即我不一定打算在这里将 Redis 用作任何 DS 服务器。但是假设服务器一直在运行,我什么时候应该考虑使用 Redis 而不是 HashMap 来存储相关数据?我的问题陈述需要频繁地从所选数据结构中写入、读取和删除。

谢谢!

最佳答案

我不是 Redis 方面的专家,我也有类似的 Java 产品,但更笼统地回答这个问题....

Redis(以及类似的解决方案)对

很有用
  • 与其他程序共享数据。
  • 将数据从堆中取出,减少 GC 暂停。
  • 让您可以通过工具直接访问您的数据。
  • 跨机器复制数据。
  • 快速重启您的 Java 应用程序。
  • 允许您将 Java 应用程序拆分为多个 JVM。

缺点是您必须通过 TCP 管道获取所有内容,这意味着更高的延迟。如果您能处理好这个问题,Redis 可能对您的部分/大部分(但可能不是全部)数据结构非常有用。

您可能想要的是具有嵌入性能的数据存储,并且您不会遇到性能问题。 ;)

关于java - 从服务器的角度来看,我什么时候应该使用 Redis 而不是像 HashMap 或 ConcurrentHashMaps 这样的 DS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745399/

相关文章:

java线程同步块(synchronized block)

java - 尝试使用 CMIS 从 Alfresco 5.0 存储库获取FolderRoot 时出现 "Unkown repository"错误

java - Solr 分组和分面

java - 在jTable(autosave)中编辑后如何保存单元格中的数据?

django - 使用 Django 和 Redis 的简单事件提要

node.js - 带有 elasticsearch 的 Postgres(保持同步)- nodeJS

java - 如何计算字符串 HashMap 中的单词出现次数

java - LinkedHashMap 如何在后台工作?

java - 如何有效搜索返回数组列表中的键的所有值

c# - RedisClient.Get<T> C# 与 ServiceStack.Redis 的性能