Php 按用户查询使用memcached
我正在开发一个web应用程序,并试图了解memcached是如何工作的 我的问题是如何使用memcached获得最佳结果 在应用程序中,当每个用户登录时,一个sql查询将检查7-8个表,并在一个数组中获取结果。我正在考虑将这些数组缓存在memcached中。但是它应该如何工作呢 我应该在memcached中使用唯一密钥为每个用户缓存阵列吗 我应该如何刷新这些数组?用cron工作还是什么Php 按用户查询使用memcached,php,memcached,Php,Memcached,我正在开发一个web应用程序,并试图了解memcached是如何工作的 我的问题是如何使用memcached获得最佳结果 在应用程序中,当每个用户登录时,一个sql查询将检查7-8个表,并在一个数组中获取结果。我正在考虑将这些数组缓存在memcached中。但是它应该如何工作呢 我应该在memcached中使用唯一密钥为每个用户缓存阵列吗 我应该如何刷新这些数组?用cron工作还是什么 提前感谢您的想法。用户是否应该使用唯一密钥缓存数据取决于数据对于该用户是否唯一。如何刷新数组取决于数据的更改方
提前感谢您的想法。用户是否应该使用唯一密钥缓存数据取决于数据对于该用户是否唯一。如何刷新数组取决于数据的更改方式。所以一般来说,你的问题是不可能回答的,在回答具体问题之前,你需要阅读一些教程 假设您的函数的输出仅取决于传递的参数,您可以从这些参数创建一个键。例如,这是一个获取用户数据的函数,您正在传递$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中删除密钥