我的问题主要是基于对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);