您现在的位置: 首页 > 动态 > 文章正文动态
redis数据类型(Redis缓存是针对于业务数据缓存还是对数据库数据缓存)
发布时间:2022-10-25 23:39 点击:次
我们在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开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。
上一篇:十大美白祛斑排行榜(有什么有效的祛斑美白产品推荐吗)
下一篇:王者荣耀1688皮肤排行(王者荣耀:最新1688传说皮肤官宣,6元皮肤上架夺宝,13888新英雄敲定,怎么评价)