4. java缓存-线程外缓存

版权声明:转载请标明来源 https://blog.csdn.net/u010652576/article/details/82762067

线程外缓存

线程外缓存主要是:缓存数据在同一的服务器中,不在运行服务器中(也可以说不在jvm运行内存中)。通过通信对外提供数据的查询,一般都是通过集群的形式,对外提供数据缓存。常见的有:ehcache、memcache、redis,最常用的有:memcache、redis。

进程外缓存的作用

解决高并发、频繁的数据访问带来的性能问题,通过内存存储频繁访问的数据,降低数据获取的时间成本。

memcache

  1. 支持多线程,提高读写效率,当然memcache基于libevent库,支持无阻塞通信,这也是提高读写效率的重要原因。
  2. 支持视频、图像、文本等类型数据缓存数据的存储。
  3. 可以通过集群形式部署。
  4. 通过LRU、LFU、FIFO进行缓存淘汰。

redis

主要可以作为关系数据库扩展的缓存,尤其是对象的缓存,并且提供一些缓存内部的统计处理。
应用场景:

  1. 高并发、读频繁的web业务的数据缓存。
  2. 可以作为全局的lock(全局时钟),主要是基于redis的单线程,通过setNx的true或者false。
  3. 可以作为临时的数据库,例如:秒杀,通过缓存解决大量请求瞬时进入DB,包括写订单、获取修改商品数量。

猜你喜欢

转载自blog.csdn.net/u010652576/article/details/82762067