【问题标题】:How to update Memcached content如何更新 Memcached 内容
【发布时间】:2023-03-29 08:24:01
【问题描述】:

是否可以更新 memcached 内容? (我使用的是 PHP Memcached)

这是我目前的工作流程:

  1. 首先我通过 DB 检索到内容。
  2. 第二次,同样的请求,来自缓存。
  3. 每当发生某些操作(即收藏链接)时,我都会刷新缓存并从 DB 中获取结果。

是否可以仅从缓存中获取更新的内容
(如果删除了一条记录,则从缓存中删除该记录并显示缓存内容)。

【问题讨论】:

  • @vishnu - 当数据库有更新时,您应该重复第 1 步和第 2 步以确保内存缓存同步
  • @ajreal - Thanu 给你回复。您的意思是说,无法更新缓存内容,稍后(运行 cron 作业脚本)插入数据库
  • @vishnu - 可以先将更改保存到内存缓存,然后再更新回数据库。 BUT 如果内存大小不够,memcache 中的数据将被修剪。如果发生这种情况,您的更改将丢失。你的潜在意图是什么?
  • @ajreal - 实际上我的网络应用程序正在存储大量浏览过的页面和快照。主要目的是提高 Web 应用程序的性能,而不是每次都查询 mysql DB(用于标记、删除和收藏)——有没有办法处理这种类型的流量。你能建议任何不同的方法来处理这种类型的流量吗?我的网站:hooeeywebprint.com
  • @vishnu - 缓存预热(后台处理)可能很有用。还要考虑并行获取(而不是一次调用顺序获取单个memcache,您可以一次调用组合多个get)

标签: php mysql memcached


【解决方案1】:

永远不要尝试刷新内存缓存

取而代之的是在从 memcached 获取页面之前读取的单个版本值或这样的值交付者甚至可以将这个版本作为一个值放在内存缓存中,只有在它不存在时才会从数据库中获取该值

这基本上是The Secret to Memcached的粗略总结

【讨论】:

猜你喜欢
  • 2015-04-13
  • 2020-09-23
  • 2021-03-11
  • 2012-08-20
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 2012-05-23
相关资源
最近更新 更多