大家来讨论一下缓存你们是怎么管理批量失效缓存问题和 tag 问题, 又是如何实现的?

2020-05-18 16:44:02 +08:00
 DavidNineRoc

比如有一个接口:

/api/v1/configs?page=xxx&version=xxxx
  1. 只有一个tag标记

我用的是tag缓存实现, 大伙用的是什么方式

// 缓存
Cache.tag(page).put(requestPath + page, responseData);
// 当修改后所有 page 失效缓存
Cache.tag(page).flush()

(如果缓存驱动是file感觉可以用目录作为tag的实现,如果是redis也可以用:划分层级实现)

  1. 第二种如果一个缓存有多个tag标记,并且每一个都能影响到缓存
// tag 无先后顺序
Cache.tag([page, version]).put(requestPath + page + version, responseData);
// 如
Cache.tag([1, '1.0.0']).put('/path1', data);
Cache.tag([2, '1.0.0']).put('/path2', data);

// /path1 将会清除
Cache.tag(1).flush()
// /path1 和 /path2 都会清除
Cache.tag(version).flush()

这种方案又是怎么实现的呢?


最后也问一下大家分页缓存(也就是第一种)大家都有什么别的方案管理缓存呢.

530 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/672937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX