一、缓存是什么?

        缓存其实是内存中一个以key-value(键值对)的形式存储数据的一个空间。当然,缓存也可以持久化。常用的缓存技术:Memcached、Ehcache、OsCache、Redis等等。

二、缓存的优点(作用)

        1、缓存可以减小数据库压力,避免与数据库发生多次交互。

        2、相对于读取数据库来说,内存操作更快,提高服务器响应速度。

三、什么样的数据适合保存到缓存中

        1、经常被查询的数据并且不经常被修改的数据。

        2、系统的常量。

四、缓存的缺点

        1、内存大小受限制,需要一个合理的缓存策略,总没有办法做到十全十美,我们只能尽量做到最好。

        2、缓存的命中率问题(命中率=命中数/(命中数+没有命中数)),也就是什么数据要缓存什么数据不需要缓存,这个没有一个唯一标准,没准一天前是热词,一天后它消失了,之前还是生词,忽然间它热了,是会随时变化的。

五、为什么缓存要做持久化

  1、也是最主要的,持久化的目的是为了保证数据的完整性。假如服务器突然挂掉,我们的数据不会丢失。

  2、变相的减轻数据库压力,如果我们重启了服务,我们之前的缓存就都消失了,这时候我们要重新缓存,这意味着所有的数据都要查询数据库,增大了数据库的压力,如果做了持久化则可以快速恢复缓存,变相的减轻我们数据库压力。

六、缓存的使用流程以及维护

        当我们访问服务器的时候,首先到缓存服务器中查询结果,如果结果为空,则需要查询数据库。查询之后,将结果存放到缓存中,再返回给客户端。下一次访问该数据的时候,就可以从缓存中取出数据,如果缓存中已经有相关数据,则直接返回给客户端。 

        当数据库数据发生改变的时候,需要维护缓存中的数据。例如:数据库中数据被删除后,需要将缓存中对应的数据也要删除。如果不及时处理,则容易出现脏数据(本来在数据库中已经被修改或被删除,而还能读取到和使用)。

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性