Redis缓存是针对于业务数据缓存还是对数据库数据缓存?

我们在BAT里做平台开发的工程师,已经越来越离不开Redis了。
我们用redis主要就是代替memcached,来做缓存。
从功能上,redis既可以做业务数据的缓存,也可以做数据库缓存,接下来我

本文最后更新时间:  2023-04-11 11:21:43

我们在BAT里做平台开发的工程师,已经越来越离不开Redis了。

我们用redis主要就是代替memcached,来做缓存。

从功能上,redis既可以做业务数据的缓存,也可以做数据库缓存,接下来我来分别介绍。

数据库缓存

目前大多数场景都是使用redis做数据库缓存。举个例子,一个任务的创建首先要写入数据库,从而得到一个id,然后这个任务要去执行。执行过程中可能要多次读取修改这个任务的某些字段,比如修改状态字段,执行者字段,用户频繁轮训这个任务状态等等,如果这个过程频繁去读写数据库无疑容易给MySQL带来额外的负担,那这种场景就非常适合引入redis作为缓存。在数据写入MySQL后,把这个数据同样写入redis,然后在这个任务彻底完成之前,所以读过程都在redis中实现,如果用户轮询这个任务的状态,那么直接从redis中将任务状态读取给他就好了,这样就减少了MySQL的读压力。

但是要注意的是,redis只是作为缓存,当任务发生不一致的情况时,一切要以MySQL中的数据为准,举例期间redis宕机了(虽然很少发生),那么要有相应的备案,将MySQL中的数据重新load进redis。

业务数据缓存

由于redis强大的读写能力,我们也可以将一些业务数据缓存在redis。

举例,我们有个场景,一个平台多个场景需要动态的调整某些参数的阈值。每次都修改代码里的阈值,再重启服务器的话这个代价实在是太大了。这种时候不妨将阈值从内存中读取改为去redis中读取。这样每次要修改阈值,直接去redis中修改对应的数据就好了,即修即生效,免去了重启服务器的代价。

redis本身作为工具,提供的是能力,而不应该被限制场景。

综上,利用redis强大又快速的读写能力,我们既能实现数据库缓存也能实现业务数据缓存。

以上是我的浅见,欢迎各位在下方点赞,评论与我交流。

我是苏苏思量,来自BAT的JAVA开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。

 1/2    1 2 下一页 尾页
温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。