redis&db查詢測試對比

// 往redis插入數據
 public function redispage_add($id,$data){
        $instance = Redis::instance();
        $hash_prefix = "test";
        if(!is_numeric($id) || !is_array($data)) return false;
        $hashName = $hash_prefix.'_'.$id;
        $instance->hMset($hashName, $data);
        $instance->zAdd($hash_prefix. '_sort', $id, $id);
        return true;
    }

// 讀取redis分頁數據
    public function redispage_list($page, $pageSize, $key = [])
    {
        $instance = Redis::instance();
        $hash_prefix = "test";

        if (!is_numeric($page) || !is_numeric($pageSize)) return false;
        $limit_s = ($page - 1) * $pageSize;
        $limit_e = ($limit_s + $pageSize) - 1;
        $range = $instance->zRange($hash_prefix . '_sort', $limit_s, $limit_e); //指定區間內,帶有 score 值(可選)的有序集成員的列表。
        $count = $instance->zCard($hash_prefix . '_sort'); //統計ScoreSet總數
        $pageCount = ceil($count / $pageSize); //總共多少頁
        $pageList = array();
        foreach ($range as $qid) {
            if (count($key) > 0) {
                $pageList[] = $instance->hMGet($hash_prefix . '_' . $qid, $key); //獲取hash表中所有的數據
            } else {
                $pageList[] = $instance->hGetAll($hash_prefix . '_' . $qid); //獲取hash表中所有的數據
            }
        }

        $data['total'] = $count;
        $data['page'] = $page;
        $data['pagecount'] = $pageCount;
        $data['list'] = $pageList;
        return $data;
    }
    //db 查詢,不讀取總數
    public function list_dbl()
    {
        $pageSize = 20;

        $filed = 'id,title,positionid,positiontitle,experience,。。。字段省略 ....groupid';
        $rs = db('job_recruit')->field($filed)->order('id asc')->limit(20)->select();

       
        $data['list'] = $rs;
        $this->returnSuccess($data);
    }

    //  db查詢 讀取總數
    public function list_db_with_total()
    {
        $pageSize = 20;

        $filed = 'id,title,positionid,positiontitle,experience,。。。字段省略 ....groupid';
        $rs = db('job_recruit')->field($filed)->order('id asc')->limit(20)->select();

        $total = db('job_recruit')->count();


        $data['total'] = $total;
        $data['page'] = 1;
        $data['pagecount'] = ceil($total / $pageSize);;
        $data['list'] = $rs;
        $this->returnSuccess($data);
    }

    // redis查詢
    public function list_redis()
    {
        $rs = $this->redis_page_info(1, 20,[]);
        $this->returnSuccess($rs);
    }

jmeter 運行在我本機上,
HttpRequest接口放在遠程服務器上,遠程服務器爲單機架構。
設置1000次, 結果如下:
Http_request name

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章