我想知道什么是使缓存对象无效/更新的更好方法。
先决条件
- 具有远程Memcached服务器(用作多个应用程序的缓存)
- 所有服务器均由azure托管(关联区域,相同的数据中心)
- 缓存对象的大小范围从200字节到50 KB
方法1(尽快存储在缓存中)
- 创建对象A->存储在数据库中并存储在缓存中
- 客户端请求的对象A->检查缓存是否存在,否则从数据库中获取并存储在缓存中
- 对象A更新->存储在数据库中,存储在缓存中
方法1似乎更简单。如果创建了某些内容,请尽快放入缓存。不管有人会需要它。
方法2(惰性缓存存储)
- 创建对象A->存储在数据库中
- 客户端请求的对象A->检查缓存是否存在,否则从数据库中获取并存储在缓存中
- 对象A更新->存储在数据库中,删除键在缓存中
方法2似乎更了解内存。在这种方法中,只有请求的项目才进入缓存。
问题1:考虑到性能,哪种方法更好?内存和CPU都不算在内。
问题2:我的想法是过早的优化吗?
问题3:还有其他想法吗?其他方法?