記錄一下幾段比較關鍵的代碼:stuck_out_tongue_closed_eyes:php
昨天已經將phpredis擴展安裝好,今天就能夠使用php操做redis了。
先寫一個init.phphtml
<?php //實例化redis對象 $redis=new Redis(); //鏈接redis服務器 $res=$redis->connect('localhost'); //受權 $redis->auth('allen'); ?>
<?php //載入redis實例化類 require('./init.php'); //獲取數據 $username = $_POST['username']; $password = $_POST['password']; $age = $_POST['age']; //自增1,用來獲取主鍵id $user_id=$redis->incr('user_id'); $data=array( 'user_id'=>$user_id, 'username'=>$username, 'password'=>$password, 'age'=>$age ); //使用哈希類型,將用戶的信息存儲起來 $res=$redis->hmset('user:'.$user_id,$data); //將用戶的user_id存入鏈表類型,爲之後的增刪改查提供便利 $redis->rpush('uid',$user_id); //設置一個字符串類型,方便用戶登錄判斷。 $redis->set('user:'.$username,$user_id); header('location:./list.php'); ?>
在用戶列表中,實現了分頁,以及爲用戶的增刪改查和關注設置了get參數。前端
<!doctype html> <html> <head> <meta charset='utf-8'> </head> <body> <?php require('./init.php'); //用戶總數。查看在註冊時添加的鏈表,能夠知道有多少個用戶 $count=$redis->lsize('uid'); //頁大小 $page_size=3; //當前頁碼 $page_num=!empty($_GET['page'])?$_GET['page']:1; //頁總數 $page_count=ceil($count/$page_size); //拿出每頁須要展現的用戶id,根據下標拿出 $ids=$redis->lrange('uid',($page_num-1)*$page_size,$page_size*$page_num-1); //根據用戶id循環出,用戶的我的信息,添加到一個數組,到前端遍歷便可。 $data=array(); foreach($ids as $v){ $data[]=$redis->hgetall('user:'.$v); } // ?> <a href='./reg.html'>註冊</a> <?php if(!empty($_COOKIE['auth'])){ $uid=$redis->get('auth:'.$_COOKIE['auth']); $username=$redis->hget('user:'.$uid,'username'); ?> 歡迎您,<?php echo $username?> <a href="./logout.php">退出</a> <?php }else{ ?> <a href="./login.php">登錄</a> <?php } ?> <table border='1'> <tr> <td>user_id</td> <td>username</td> <td>password</td> <td>age</td> <td>操做</td> </tr> <?php foreach($data as $k=>$v){ ?> <tr> <td><?php echo $v['user_id']?></td> <td><?php echo $v['username'] ?></td> <td><?php echo $v['password'] ?></td> <td><?php echo $v['age'] ?></td> <td> <a href="./del.php?user_id=<?php echo $v['user_id']?>">刪除</a> <a href="./modi.php?user_id=<?php echo $v['user_id']?>">修改</a> <?php if(!empty($_COOKIE['auth']) && $uid != $v['user_id']){ ?> <a href="./addfans.php?myid=<?php echo $uid?>&user_id=<?php echo $v['user_id']?>">加關注</a> <?php }?> </td> </tr> <?php } ?> <tr> <td colspan=5> <a href="./list.php?page=1">首頁</a> <a href="./list.php?page=<?php echo ($page_num-1)<1?1:$page_num-1 ?>">上一頁</a> <a href="./list.php?page=<?php echo ($page_num+1)>$page_count?$page_count:$page_num+1 ?>">下一頁</a> <a href="./list.php?page=<?php echo $page_count ?>">尾頁</a> </td> </tr> </table> <table border='1'> <caption>我關注的人</caption> <tr> <td>user_id</td> <td>username</td> <td>age</td> </tr> <?php //本身關注的無序集合,從中拿出全部的關注人user_id $array_uid=$redis->smembers('user:'.$uid.':following'); $data=array(); foreach($array_uid as $v){ $data[]=$redis->hgetall('user:'.$v); } ?> <?php foreach($data as $k=>$v){ ?> <tr> <td><?php echo $v['user_id']?></td> <td><?php echo $v['username'] ?></td> <td><?php echo $v['age'] ?></td> </tr> <?php } ?> </table> <table border='1'> <caption>個人粉絲</caption> <tr> <td>user_id</td> <td>username</td> <td>age</td> </tr> <?php //本身全部粉絲的無序集合 $array_uid=$redis->smembers('user:'.$uid.':followers'); $data=array(); foreach($array_uid as $v){ $data[]=$redis->hgetall('user:'.$v); } ?> <?php foreach($data as $k=>$v){ ?> <tr> <td><?php echo $v['user_id']?></td> <td><?php echo $v['username'] ?></td> <td><?php echo $v['age'] ?></td> </tr> <?php } ?> </table> </body> </html>
<?php require('./init.php'); $username=$_POST['username']; $password=$_POST['password']; //首先查詢是否存在這個keys,也就是查看用戶名是否正確 $uid=$redis->get('user:'.$username); if($uid){ //用戶名正確,查看密碼是否正確 $pwd=$redis->hget('user:'.$uid,'password'); if($pwd == $password){ //若是正確保存cookie $auth=md5(time().rand()); setcookie('auth',$auth,time()+86400); header('location:./list.php'); }else{ echo '密碼不對'; } }else{ echo 'error'; } ?>
<?php require('./init.php'); //傳入須要刪除的user_id $user_id=$_GET['user_id']; //刪除用戶信息的key $result=$redis->del('user:'.$user_id); //在保存用戶user_id的鏈表中,將其刪除 $redis->lrem('uid',$user_id); if($result){ header('location:./list.php'); }else{ echo 'error'; } ?>
<?php /* $user_id是我要關注的用戶的id myid是我本身的id */ $user_id=$_GET['user_id']; $myid=$_GET['myid']; require('./init.php'); /* 我本身的關注無序集合,保存了我關注的全部人 */ $redis->sadd('user:'.$myid.':following',$user_id); /* 被關注人的粉絲集合,保存了他全部的粉絲 */ $redis->sadd('user:'.$user_id.':followers',$myid); header('location:./list.php'); ?>
Redis就暫時到這裏吧,之後實際用到了,再深刻研究研究。redis