对于java而言,分布式是现在的趋势。见过订单中心,用户中心等等,但是缓存一般用redis来实现。
为什么现在大多用redis做缓存,而只有老系统用hashMap做缓存呢?
用hashMap写到内存中来存储常用数据,会比redis慢吗?
写一个缓存中心,定义多个HashMap来存储不同种类的公共数据,和使用redis比起来哪个好?
redis相当于一个数据库缓存,独立的数据库服务
数据在hashMap内存中,一旦所在的服务挂了,缓存就没了,还得重新生成,但是redis不会
还有一部分原因是,当你多个子系统用到同一个缓存,难道每一个子系统都在自己的内存生成缓存么,
除非是为了空间换时间,
我的意思是单独创建一个缓存中心,一个单独的项目,部署到一个单独的服务器的,和redis一样。
单起一台服务器来专门做缓存,在做一些缓存持久化机制
采用dubbo协议或者rest方式,对缓存进行操作
用HashMap一定比Redis快的,因为Redis会有额外的网络IO的开销,那为什么用Redis而不用HashMap?
首先目前大部分的系统是分布式的,这种情况下使用HashMap的话,缓存利用率不高,每台机器上