记录一下几段比较关键的代码: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