一分钟之聊聊缓存写策略

存储 存储软件
通常来说,当系统写数据到缓存的时候,在某个时点也需要更新缓存后端的数据库。究竟在哪个时点更新后端数据库,是由缓存写策略来控制。

通常来说,当系统写数据到缓存的时候,在某个时点也需要更新缓存后端的数据库。究竟在哪个时点更新后端数据库,是由缓存写策略来控制。

缓存写策略,主要包含两个基础方法,Write-through和Write-behind。

Write-through,写数据到缓存和写数据到数据库是同步的。如果写数据***缓存,那么可以先刷新缓存,然后再写数据库。如果写数据库不***缓存,这个时候是可以直接写数据库了。等到读的时候,如果不***缓存,再从数据库中取数据缓存起来。

[[223877]]

Write-behind,延后写数据到数据库。其中一种实现方法是异步写数据到数据库。首先写数据到缓存,然后发布一个写事件到消息队列,此时即可响应客户端了。消息队列的消费者处理写事件,将数据写到数据库中。Write-behind如果对于频繁的数据写表操作,是能提高写性能的。当然如果在写缓存成功,但写事件发布成功前,缓存 server 宕机了,也是有可能数据丢失了。

大多数的系统都是读多写少,所以Write-through策略应用相当广泛,就如spring cache 中的CachePut 注解作用。Ehcache缓存支持这两种策略。

***提出这样一个场景,需要从数据库中,取一些数据(数据会不定时改变,相当频繁),然后做一些复杂耗时的计算,再将结果最终保存到数据库中,这个时候我们该如何做缓存?

责任编辑:武晓燕 来源: Eason的非程序世界
相关推荐

2017-03-30 19:28:26

HBase分布式数据

2017-02-21 13:00:27

LoadAverage负载Load

2018-07-31 16:10:51

Redo Undo数据库数据

2018-06-26 05:23:19

线程安全函数代码

2017-07-06 08:12:02

索引查询SQL

2020-05-21 19:46:19

区块链数字货币比特币

2022-07-18 06:16:07

单点登录系统

2018-12-12 22:51:24

Java包装语言

2020-07-09 07:37:06

数据库Redis工具

2020-07-17 07:44:25

云计算边缘计算IT

2016-09-12 17:28:45

云存储应用软件存储设备

2011-02-21 17:48:35

vsFTPd

2016-12-16 11:05:00

分布式互斥线程

2015-11-12 10:32:40

GitHub控制系统分布式

2021-08-06 08:50:45

加密货币比特币区块链

2013-11-15 07:24:50

4G LTE图解

2020-06-11 08:04:12

WDMDWDMMWDM

2009-12-02 17:21:19

Cisco路由器配置

2016-12-21 15:08:14

数据库垂直拆分

2023-03-27 09:40:01

GoWebAssembl集成
点赞
收藏

51CTO技术栈公众号