redis & db query test comparison

// 往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 to run on my machine this,
the HttpRequest interfaces on a remote server, the remote server is a stand-alone architecture.
Setting 1000 results are as follows:
Http_request name

Published 67 original articles · won praise 6 · views 50000 +

Guess you like

Origin blog.csdn.net/sfmcatl/article/details/91449696