简单而又可能有些愚蠢的问题:假设我有一个Java服务器,在内存中存储常用的键和值,我可以查询它们(比如在HashMap中)
那么这与使用Memcache(甚至是Redis)有什么区别呢?它们都将东西存储在内存中。它们之间有什么优势吗?Memcache占用的内存更少吗?可以在更少的内存中存储更多的内容吗?查询速度更快吗?没有任何区别吗?
Java内存相对于Memcache的优势:
Memcache相对于Java内存的优势:
我刚刚对并发哈希表、Memcached和MySQL进行了基准测试。
以下是测试结果:
类型 插入 查找 移除
ConcurrentHashMap 264ms 93ms 82ms
Memcached 6549ms 5976ms 4900ms
Mysql 55754ms 26002ms 57899ms
此基准测试使用了线程池。
有关更多信息,请参见: http://www.incentergy.de/2013/12/big-data-architecture-patterns-for-performance/
此外,以下缓存可能是Memcached的替代品: https://code.google.com/p/kitty-cache/