对memcache中的数据分页

<?php
$arr = array(1,2,3,4,5,6,7,8,9,10,11,12,34,5,6,74,23,5,3223,2352,13234,1323434,23243,2132);
$page = $_GET[‘page’];
$pageSize = 8;
$total = count($arr); //total
$pageCount = ceil($total/$pageSize);
$page?$page:1;

$offset = ($page - 1)*$pageSize;

$outfile = array_slice($arr,$offset,$pageSize);

print_r($outfile);

第一种方式:
将数据统统放到mem的一个key值里,每次都要取全部数据,然后放到数组中,通过array_slice来经行分页,如上方法
缺陷:小数据量能显示memcache的能力,但数据超过万级其速度还不如mysql数据库的速度快

第二种方法:
在向memcache里set数据时,先切割数据为多个,每个key值的命名也有规定,每个key值都有个id值,比如log_1,log_2,log3……等,在每个key值里存10条数据,在取数
据时,只要get(‘log
‘.$id); $id就是所谓的页数1、2、3、4…
缺陷,每次更新数据,所有数据都会被修改,操作量大,对内存的要求也会很高