php与Redis分页程序代码
Redis在性能上比mysql好点之外但在数据操作上的复杂度我们觉得非常的麻烦,像分页这种做法感觉非常不好使.
用上redis之后速度上去的结果就是操作数据的复杂性了,分页有种脱了裤子放屁的感觉,但是也没有别的办法,代码如下:
- <?php
- $redis = new Redis;
- $redis->connect('127.0.0.1',6379,0);
- //数据库
- $host='********';
- $user='root';
- $psd='****';
- $dbname='ask';
- $link = mysql_connect($host,$user,$psd);
- mysql_select_db($dbname,$link);
- mysql_query("set names utf8");
- $SQL = "SELECT * FROM question LIMIT 100";
- $query = mysql_query($SQL);
- $questionName = 'questionName';
- while($info = mysql_fetch_array($query)){
- $list[] = $info;
- $redisName = 'Question_id_'.$info['id'];
- $redis->hMset($redisName, $info);
- $redis->zAdd($questionName,$info['id'],$info['id']);
- $i++;//开源代码phpfensi.com
- }
- $range = $redis->zRevRange($questionName,0,10); //分页用到的主要函数
- foreach($range as $qid){
- $pageList[] = $redis->hGetAll('Question_id_'.$qid);
- }
- print_r($pageList);
- ?>
只是在做例子的时候随便敲敲、完全没有代码规范,请自己封装 基本用上的方法就是Reids的 hMset(),zAdd(), hGetAll(),zRevRange();如有不明白可以查看redis手册,或者与松林讨论.