redis运用缓存

66 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情

前言

上一篇第八天的文章讲述了缓存的作用。所以这一天的文章我们来讲redis如何合理的运用缓存,优化程序。

缓存的结构

我们先来看这张图。

image.png 在这张图片上我们可以清晰地认识到没有缓存时候的程序与数据库的情况。而在加入了缓存之后,情况又变成下面这个样子。

image.png

简单来说就是在发送请求时,会先去缓存的地方即redis中,看看有没有存储这个东西。如果没有就再向数据库发送请求,然后数据库返回对应的结构。并把该结果(有效结果)写入到redis中去。如果在缓存中有对应的东西就不会再去请求数据库。这个过程看似很简单,但是实现起来又会出现许多的问题。比如在数据更新的时候,先变更数据库里面的信息还是先变更缓存里面的信息、还有缓存的更新机制,因为数据库里面的数据是不会一成不变的,缓存也需要使用一定的策略进行更新。这些都是比较复杂的问题就先不在这里讨论。

redis缓存的例子

image.png

下面这个是我在学习redis中练习的项目,再此用做例子。我们先看到这个首页的这几个大类基本上就是固定的。像这样子不变却又大量时候的就很适合做缓存,这样许多请求时就不会造成数据库的崩溃。除此之外,像榜单之类的也适合做缓存(下文说明)。我在对应的接口中,先向redis中查看,没有之后再向数据库查,最后写入缓存,返回对应结果。注意这个缓存的有效期可以设置的长一点。

总结

今天大致讲了redis运用缓存的例子,接下来会针对缓存做一些说明。