缓存
缓存,顾名思义,就是数据暂存的地方,可以理解为取出来的数据暂时存放在内存里,等待使用。
使用缓存的场景,缓存一般用来存放热点数据,有一个二八定律的说法。简单的说就是重要的部分一般占20%,缓存用来存放的就是这20%的数据。因为访问数据库的速度是很慢的,并且数据库是脆弱的,无法抗住业务的直接冲击
我了解两种
1.在虚拟机内存里创建缓存
2.使用Redis(memcached)
一、在JVM中创建缓存
优点:速度快,不依赖第三方,不受其他影响。
缺点:占用JVM内存,维护难度大,复用难度高,没有持久化
我们再代码中创建的实例、对象都可以理解为缓存在JVM中。这种方式适用于数据量少,频繁修改,且不重要的数据。
二、使用Redis作为缓存
优点:支持数据持久化、性能高、可扩展、丰富的特性
缺点:单核运行、需要主动维护
使用Redis作为缓存最好是单独放在一台机器上。避免和其他进程争抢资源出现问题。我曾将redis服务器和数据库备库放在一台机器上。后来redis服务停止。没有任何异常信息、我认为单线程的redis在做持久化时候会占用某个cpu。如果这时有另一个服务占用cpu, 假设redis占用某一个核的60%,另外一个服务占用cpu50%,这时在redis来看cpu资源是不够用的。因为每个核都是50%。linux这时会将其强制关闭。效果类似kill命令。