实际上我对排球缓存管理有一点混淆。假设我有一个带有BASE URL http://example.com
的API但是当我调用我的api时,我会附加一个布局参数,所以最后它看起来像http://example.com?sort_by=distance
。
所以,如果我想清除这个url的缓存哪一个应该是我的密钥
http://example.com
或http://example.com?sort_by=distance
如果答案是第二个,那么我是否需要为所有由不同url参数创建的url单独清除缓存。
答案 0 :(得分:0)
volley(我猜所有其他缓存系统)使用完全详细的url u调用作为缓存数据的密钥。 如果你想删除一个缓存条目,你需要通过完全完整的链接来完成。 链接" www.example.com/amir?id = 1"与" www.example.com/amir?id = 2"不同。否则缓存会比效率更麻烦。
答案 1 :(得分:0)
顺便说一句,你不需要删除缓存。考虑到一些因素,这是凌空处理的事情。
如果您需要调用跳过客户端和服务器中所有缓存系统的链接,最简单的方法是在API调用结束时放置一个timpestamp。
如果您的链接为www.example.com/amir/id/2
,请将此链接设为= => www.example.com/amir/id/2?timestamp=54461
。
通过Java的System.currentTimeMillis()
生成时间戳前面的数字。您可以将其除以一个数字,以使缓存值在一段时间内有效。