php与Redis分页程序代码

Redis在性能上比mysql好点之外但在数据操作上的复杂度我们觉得非常的麻烦,像分页这种做法感觉非常不好使.

用上redis之后速度上去的结果就是操作数据的复杂性了,分页有种脱了裤子放屁的感觉,但是也没有别的办法,代码如下:

  1. <?php
  2. $redis = new Redis;
  3. $redis->connect('127.0.0.1',6379,0);
  4. //数据库
  5. $host='********';
  6. $user='root';
  7. $psd='****';
  8. $dbname='ask';
  9. $link = mysql_connect($host,$user,$psd);
  10. mysql_select_db($dbname,$link);
  11. mysql_query("set names utf8");
  12. $SQL = "SELECT * FROM question LIMIT 100";
  13. $query = mysql_query($SQL);
  14. $questionName = 'questionName';
  15. while($info = mysql_fetch_array($query)){
  16. $list[] = $info;
  17. $redisName = 'Question_id_'.$info['id'];
  18. $redis->hMset($redisName, $info);
  19. $redis->zAdd($questionName,$info['id'],$info['id']);
  20. $i++;//开源代码phpfensi.com
  21. }
  22. $range = $redis->zRevRange($questionName,0,10); //分页用到的主要函数
  23. foreach($range as $qid){
  24. $pageList[] = $redis->hGetAll('Question_id_'.$qid);
  25. }
  26. print_r($pageList);
  27. ?>

只是在做例子的时候随便敲敲、完全没有代码规范,请自己封装 基本用上的方法就是Reids的 hMset(),zAdd(), hGetAll(),zRevRange();如有不明白可以查看redis手册,或者与松林讨论.