我的问题主要是基于阅读内存缓存。
在一篇博客中,我读到了实现此目的的最佳方法是创建一个基于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的好习惯?
答案 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);