【发布时间】:2023-03-29 08:24:01
【问题描述】:
是否可以更新 memcached 内容? (我使用的是 PHP Memcached)
这是我目前的工作流程:
- 首先我通过 DB 检索到内容。
- 第二次,同样的请求,来自缓存。
- 每当发生某些操作(即收藏链接)时,我都会刷新缓存并从 DB 中获取结果。
是否可以仅从缓存中获取更新的内容
(如果删除了一条记录,则从缓存中删除该记录并显示缓存内容)。
【问题讨论】:
-
@vishnu - 当数据库有更新时,您应该重复第 1 步和第 2 步以确保内存缓存同步
-
@ajreal - Thanu 给你回复。您的意思是说,无法更新缓存内容,稍后(运行 cron 作业脚本)插入数据库
-
@vishnu - 可以先将更改保存到内存缓存,然后再更新回数据库。 BUT 如果内存大小不够,memcache 中的数据将被修剪。如果发生这种情况,您的更改将丢失。你的潜在意图是什么?
-
@ajreal - 实际上我的网络应用程序正在存储大量浏览过的页面和快照。主要目的是提高 Web 应用程序的性能,而不是每次都查询 mysql DB(用于标记、删除和收藏)——有没有办法处理这种类型的流量。你能建议任何不同的方法来处理这种类型的流量吗?我的网站:hooeeywebprint.com
-
@vishnu - 缓存预热(后台处理)可能很有用。还要考虑并行获取(而不是一次调用顺序获取单个memcache,您可以一次调用组合多个get)