2012-04-14 27 views
0

我正在研究一个web应用程序,并试图了解memcached是如何工作的。每个用户的查询使用memcached

我的问题是关于如何使用memcached来获得最佳结果。

在应用程序中,当每个用户登录时,sql查询将检查7-8个表并将结果以数组形式显示。我正在考虑将这些数组缓存在memcached中。但它应该如何工作?

我应该缓存每个用户在memcached中具有唯一键的数组吗?

我该如何刷新数组?用cron工作还是什么?

感谢您的意见提前。

回答

0

如果数据应由具有唯一密钥的用户缓存,则取决于数据对于该用户是否唯一。如何刷新数组取决于数据如何改变。所以一般来说,你的问题是不可能回答的,在回答具体问题之前你需要阅读一些教程。

假设你有函数的输出只依赖于传递的参数,你可以从这些参数创建一个键(例如,这是一个获取用户数据的函数,你传递$ userId - 你的键可能是userdata/$用户id),你可以缓存功能

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; 
} 

至于无效,当某些数据已经改变的返回值,只是删除从内存缓存

关键
相关问题