我正在开发一个web应用程序,并试图了解memcached是如何工作的。
我的问题是如何使用memcached获得最佳结果。
在应用程序中,当每个用户登录时,sql查询将检查7-8个表,并以数组形式获得结果。我在考虑在memcached中缓存这些数组。但是它应该如何工作呢?
我应该在memcached中使用唯一键缓存每个用户的数组吗?
我应该如何刷新这些阵列?是不是干了什么活?
提前感谢你的点子。
发布于 2012-04-15 01:04:33
数据是否应该由具有唯一键的用户缓存取决于数据对于该用户是否是唯一的。应该如何刷新阵列取决于数据的更改方式。因此,一般来说,你的问题是无法回答的,在提出具体问题之前,你需要阅读一些教程。
假设您有一个输出仅依赖于传递的参数的函数,您可以根据这些参数创建一个键(例如,这是一个获取用户数据的函数,您正在传递$userId -您的键可以是userdata/$userId),您可以缓存该函数的返回值
function get_user_data($userId) {
$cacheKey = 'userdata/' . $userId;
$result = cache::instance()->get($cacheKey);
if ($result == false) {
// body of the function
cache::instance()->set($cacheKey, $result);
}
return $result;
}
至于失效,当一些数据被更改时,只需从memcache中删除键即可
https://stackoverflow.com/questions/10155436
复制相似问题