0

我的问题主要是基于对 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 的好习惯?

4

2 回答 2

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);
于 2013-10-23T10:12:49.033 回答
1

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

于 2013-10-23T10:05:19.093 回答