使用redis缓存java对象:为什么它比ConcurrentHashMap更好?

使用redis缓存java对象:为什么它比ConcurrentHashMap更好?,java,caching,redis,concurrenthashmap,Java,Caching,Redis,Concurrenthashmap,在分析当前正在开发的java应用程序时,我们发现了一些瓶颈,可以使用缓存来消除这些瓶颈。应用程序处理请求,并且应该尽可能快地执行。我们考虑将Redis作为缓存解决方案,因为我们已经在应用程序中使用了它。基本上,我们必须缓存java对象。使用Redis,我们必须序列化/反序列化这些对象+网络开销。考虑到Redis基本上是一个键值存储,我想知道使用ConcurrentHashMap而不是Redis是否更有效,因为这样可以节省序列化和网络开销。然而,在互联网上搜索时,我找不到任何人为此目的使用它。我错

在分析当前正在开发的java应用程序时,我们发现了一些瓶颈,可以使用缓存来消除这些瓶颈。应用程序处理请求,并且应该尽可能快地执行。我们考虑将Redis作为缓存解决方案,因为我们已经在应用程序中使用了它。基本上,我们必须缓存java对象。使用Redis,我们必须序列化/反序列化这些对象+网络开销。考虑到Redis基本上是一个键值存储,我想知道使用ConcurrentHashMap而不是Redis是否更有效,因为这样可以节省序列化和网络开销。然而,在互联网上搜索时,我找不到任何人为此目的使用它。我错过什么了吗?ConcurrentHashMap在这方面的实际限制是什么(就并发请求和缓存数据量而言)

IMHO,ConcurrentHashMap是一个合适的缓存

  • 您不需要外部访问
  • 总堆大小不太大,例如4 GB
  • 并发级别不超过20个CPU(不仅仅是线程)
  • 它具有您需要的功能
  • 你的模型很简单
Redis的设计不仅仅是缓存值,还可以在使用不同语言的进程之间共享,甚至可以通过命令行访问