PHP Memcache - 动态网站

时间:2013-10-23 09:55:35

标签: php memcached

我的问题主要是基于阅读内存缓存。

在一篇博客中,我读到了实现此目的的最佳方法是创建一个基于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的好习惯?

2 个答案:

答案 0 :(得分:1)

我更喜欢相当可读的密钥,所以我个人使用了类似'memcache_test:ashley:otherpart'的东西。如果密钥可能比简单的单词更复杂,那么简单地转义它们也会很有用,比如“urlencode()”,这通常就足够了。

答案 1 :(得分:1)

就个人而言,如果我从数据库表中获取记录,我想按如下方式创建密钥:

$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);