memcached是如何更新的?

Jim*_*Jim 5 memcached caching

我以前从未使用过 memcached,并且对以下基本问题感到困惑。
Memcached 是缓存吧?我假设我们缓存数据库中的数据以便更快地访问。那么当DB更新时谁负责更新缓存呢?我们的代码是,当数据库更新时,memcached 是否“理解”?

Edg*_*rks 1

您负责更新缓存(或某些插件)。

所发生的情况是,查询被压缩为一些关键特征,并且这些特征被散列。这是针对缓存进行测试的。如果该值在缓存中,则直接从缓存返回数据。否则,执行查询,将其存储在缓存中并返回给用户。

在伪代码中:

key = query_key(your_sql_query)
if key in cache:
  return cache.get(key)
else:
 results = execute(your_sql_query)
 cache.set(key, results, time_to_live)
 return results. 
Run Code Online (Sandbox Code Playgroud)

缓存偶尔会被清除,您可以给某个键一个生存时间,然后刷新您的缓存结果。

这是最简单的模型,但可能会导致一些不一致。