尤爲在使用redis以前,能夠提升性能redis
判斷從屬關係,是否在一個域內性能
判斷是否存在,尤爲在update時this
代碼例子code
/** * @param $id * @param $parentId * @param $name * @param $code * @return int 0-success;-1-CODE_DOES_NOT_EXIST;-2-CODE_DOES_NOT_EXIST;-3-DEFAULT_CODE_CAN_NOT_UPDATE;-4-DISABLED_SYSTEM_KEYWORDS;-5-CODE_EXIST; */ public function update($id,$parentId, $name, $code) { //check field $system_array = array("NEW","REGISTER","IMPORT"); if(in_array( strtoupper($code),$system_array)){ return -4; } $redis = $this->_context->getRedis(); //check permission $rank = $redis->zRank('base:list:' . $parentId,$id); if ($rank === false) { return -2; } //check exist if (!$redis->exists('base:detail:' . $id)) { return -1; } //check code exists $detail = $redis->hMGet('base:detail:' . $id,array('code','isDefault')); $rank = $redis->zRank('base:code:list:' . $parentId, strtoupper($code)); if ($detail['code']!==$code && $rank!==false) { return -5; } //check is default if($detail['isDefault']==="1") { return -3; } //delete old trackingCode $redis->zRem('base:code:list:' . $parentId, strtoupper($detail['code'])); //create new trackingCode $redis->hMset('base:detail:' . $id, array( 'name' => $name, 'code' => $code ) ); $redis->zAdd('base:code:list:' . $parentId,$id, strtoupper($code)); return 0; }