我知道缓存对于 Instagram、Twitter、Facebook 等分布式系统非常重要。我的问题是你在缓存中保存了什么?
对于应用程序缓存,我认为您可以使用请求 URL 作为键,并将呈现的 html 页面或其他应用程序响应保存为键值。
但是,对于数据库缓存,您应该保存什么?一种方法是使用数据库查询,例如,“Select * from user where username="John"” 作为键并将 SQL 结果保存为值。那么,你是将 SQL 结果保存为文本文件还是 java 对象?显然,用户 SQL 查询作为 key 是非常有限的,因为人们可以通过不同的方式进行查询。有没有其他方法可以将数据库数据保存在缓存中?假设你可以在缓存中加载整个数据库内容,你如何在内存中组织这些数据?