Authored by Rock Zhang

地址树数据加上缓存

@@ -45,4 +45,6 @@ class CacheConfig @@ -45,4 +45,6 @@ class CacheConfig
45 const KEY_ACTION_GUANG_DETAIL_DATA = 'key_action_guang_detail_data'; // 逛内容详情 45 const KEY_ACTION_GUANG_DETAIL_DATA = 'key_action_guang_detail_data'; // 逛内容详情
46 const KEY_ACTION_GUANG_RSS_DATA = 'key_action_guang_detail_data'; // 逛订阅内容 46 const KEY_ACTION_GUANG_RSS_DATA = 'key_action_guang_detail_data'; // 逛订阅内容
47 47
  48 + const KEY_ACTION_ADDRESS_LIST_DATA = 'key_action_address_list_data'; // 地址树数据
  49 +
48 } 50 }
@@ -307,6 +307,15 @@ class UserModel @@ -307,6 +307,15 @@ class UserModel
307 { 307 {
308 $result = array(); 308 $result = array();
309 309
  310 + if (USE_CACHE) {
  311 + $key = CacheConfig::KEY_ACTION_ADDRESS_LIST_DATA;
  312 + // 先尝试获取一级缓存(master), 有数据则直接返回.
  313 + $result = Cache::get($key, 'master');
  314 + if (!empty($result)) {
  315 + return $result;
  316 + }
  317 + }
  318 +
310 // 调用接口获取地址列表数据 319 // 调用接口获取地址列表数据
311 $address = UserData::addressListData($uid); 320 $address = UserData::addressListData($uid);
312 321
@@ -315,6 +324,17 @@ class UserModel @@ -315,6 +324,17 @@ class UserModel
315 $result = $address['data']; 324 $result = $address['data'];
316 } 325 }
317 326
  327 + if (USE_CACHE) {
  328 + // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据.
  329 + if (empty($result)) {
  330 + $result = Cache::get($key, 'slave');
  331 + }
  332 + // 接口调用正常,数据封装完成, 则设置一级(master)和二级(slave)数据缓存
  333 + else {
  334 + Cache::set($key, $result, 1800); // 缓存30分钟
  335 + }
  336 + }
  337 +
318 return $result; 338 return $result;
319 } 339 }
320 340