gpt4 book ai didi

PHP memcached 更新结果

转载 作者:行者123 更新时间:2023-11-30 23:09:23 26 4
gpt4 key购买 nike

我即将实现一个可以由我们的数据库类扩展的 memcached 类。然而,我已经研究了许多不同的方法来做到这一点。

我的第一个问题是,Memcached::set() 中的要点是什么,因为它似乎替换了键的值。这不会破坏缓存结果的目的吗?

我的第二个问题是,从技术上讲,什么是最快/最好的更新键值的方法,而无需在每次执行查询时检查结果。如果发生这种情况,则必须不断检查检索到的结果,这样缓存就没有意义了,因为结果会不断连接到 mysql 数据库。

最后,创建 key 的最佳方式是什么?大多数人建议使用 MD5,但是无论如何在 PDO 查询上使用 MD5 都是一样的。

即.

$key = MD5("SELECT * FROM test WHERE category=?");

类别可以产生许多不同的结果,但是键会不断被替换。有这方面的最佳做法吗?

最佳答案

当你必须读取数据库时,你设置了一个缓存条目,这样下次你就不必先读取数据库了。您将检查缓存,如果缓存不存在或已过时,那么您将回退到数据库读取,并重置 key 。

至于键名,很大程度上取决于类别的期望值。如果 if 是一个简单的整数或字符串,我会使用像 test.category:99test.category:car 这样的键。如果可能更多,对其进行编码可能会有用,因此其中没有空格(例如,urlencode)。

最后,如果它比这更复杂 - test:category:{MD5(category)}

由于 key 只是对数据的引用,您永远不会在任何类型的 SQL 查询中使用它,因此将值放在那里通常不会成为安全问题。

由于您可以控制何时设置缓存,如果基础数据库条目发生更改,同时使用新数据更新缓存也很简单 - 您只需使用相同的 key 即可。

关于PHP memcached 更新结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20517551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com