一、缓存是什么?
缓存其实是内存中一个以key-value(键值对)的形式存储数据的一个空间。当然,缓存也可以持久化。常用的缓存技术:Memcached、Ehcache、OsCache、Redis等等。
二、缓存的优点(作用)
1、缓存可以减小数据库压力,避免与数据库发生多次交互。
2、相对于读取数据库来说,内存操作更快,提高服务器响应速度。
三、什么样的数据适合保存到缓存中
1、经常被查询的数据并且不经常被修改的数据。
2、系统的常量。
四、缓存的缺点
1、内存大小受限制,需要一个合理的缓存策略,总没有办法做到十全十美,我们只能尽量做到最好。
2、缓存的命中率问题(命中率=命中数/(命中数+没有命中数)),也就是什么数据要缓存什么数据不需要缓存,这个没有一个唯一标准,没准一天前是热词,一天后它消失了,之前还是生词,忽然间它热了,是会随时变化的。
五、为什么缓存要做持久化
1、也是最主要的,持久化的目的是为了保证数据的完整性。假如服务器突然挂掉,我们的数据不会丢失。
2、变相的减轻数据库压力,如果我们重启了服务,我们之前的缓存就都消失了,这时候我们要重新缓存,这意味着所有的数据都要查询数据库,增大了数据库的压力,如果做了持久化则可以快速恢复缓存,变相的减轻我们数据库压力。
六、缓存的使用流程以及维护
当我们访问服务器的时候,首先到缓存服务器中查询结果,如果结果为空,则需要查询数据库。查询之后,将结果存放到缓存中,再返回给客户端。下一次访问该数据的时候,就可以从缓存中取出数据,如果缓存中已经有相关数据,则直接返回给客户端。
当数据库数据发生改变的时候,需要维护缓存中的数据。例如:数据库中数据被删除后,需要将缓存中对应的数据也要删除。如果不及时处理,则容易出现脏数据(本来在数据库中已经被修改或被删除,而还能读取到和使用)。
标签:缓存,持久,数据库,介绍,概念,命中,服务器,数据 From: https://www.cnblogs.com/shuaishuaiguo/p/16782815.html