缓存使用策略
1. Cache Aside(旁路缓存)
这个策略数据以数据库中的数据为准,缓存中的数据是按需加载的。
数据更新:
- 更新数据库中的记录;
- 删除缓存记录
从缓存中读取数据;
- 如果缓存命中,则直接返回数据;
- 如果缓存不命中,则从数据库中查询数据,并将数据写入到缓存中,并且返回给用户。
2. read、Write Through(写穿策略)
更新数据:先查询要写入的数据在缓存中是否已经存在,如果已经存在,则更新缓存中的数据,并且由缓存组件同步更新到数据库中,如果缓存中数据不存在,直接更新到数据库中。
读数据:先查询缓存中数据是否存在,如果存在则直接返回,如果不存在,则由缓存组件负责从数据库中同步加载数据。
3. Write Back(写回)策略
这个策略的核心思想是在写入数据时只写入缓存,并且把缓存块儿标记为“脏”的。而脏块儿只有被再次使用时才会将其中的数据写入到后端存储中。一般很少使用。
更新数据:
读取数据:在读取缓存时如果发现缓存命中则直接返回缓存数据;否则寻找一个可用的缓存块儿,如果这个缓存块儿是“脏”的,就把缓存块儿中之前的数据写入到后端存储中,并且从后端存储加载数据到缓存块儿,如果不是脏的,则由缓存组件将后端存储中的数据加载到缓存中,最后我们将缓存设置为不是脏的,返回数据就好了。