PHP 内存缓存 - 动态站点


PHP Memcache - Dynamic sites

我的问题主要是基于对memcache的阅读。

在一篇博客中,我读到实现这一点的最佳方法是基于 SQL 查询的 MD5 哈希创建一个密钥。

例:

$key = md5("SELECT * FROM memcached_test where name='ashley'");
$get_result = $memcache->get($key);

在我使用过的网站上,这是不切实际的,因为查询本身使用的是 PDO MySQL,因此密钥如下所示:

$key = md5("SELECT * FROM memcached_test where name=?");
$get_result = $memcache->get($key);

因此,无论如何,生成的密钥都是相同的。

为 memcache 生成密钥的最实用方法是什么?什么是使用 memcache 的良好实践?

我更喜欢相当可读的键,所以我个人使用了类似"memcache_test:ashley:otherpart"的东西。如果键对我来说可能比一个简单的单词更复杂,那么简单的转义也会很有用,比如"urlencode()",这通常就足够了。

就个人而言,如果我从数据库表中获取记录,我喜欢按如下方式制作键:

$appPrefix = "myapp"; // An identifier for my application
$tableName = "table"; // database table name
$recordId = "1"; // The record I'm interested in
// Query: SELECT * FROM `$tableName` WHERE id = '$recordId';
$record = $memcache->get($appPrefix . ":" . $tableName . ":" . $recordId);