时时商务社区

标题: php+redis实现注册、删除、编辑、分页、登录、关注等功能示例 [打印本页]

作者: 网络通达    时间: 2018-2-14 05:28

            本文实例讲述了php+redis实现注册、删除、编辑、分页、登录、关注等功能。分享给大家供大家参考,具体如下:
主要界面

连接redis
redis.php
connect("localhost",6379);
  //var_dump($a);
  //授权
  $redis->auth("107lab");
注册界面
add.php
  用户名:
  密码:
  年龄:
  
  
注册实现
reg.php
incr("userid");//设置自增id,相当于主键
  $redis->hMset("user:".$uid,array("uid"=>$uid,"username"=>$username,"password"=>$password,"age"=>$age));//用hash类型存储用户比较方便
  //将用户id存入一个链表中,便于统计数据
  $redis->rpush("uid",$uid);
  //将用id存入以用户名为键的字符类型中,便于查看用户是否存在。
  $redis->set("username:".$username,$uid);
  header('location:list.php');
列表页面
list.php
注册
get("auth:".$_COOKIE['auth']);
    $name = $redis->hget("user:".$id,"username");
?>
    欢迎您: 退出
  
  登录
  
lsize("uid");//获取链表的长度
  //echo $count;
  //页大小
  $page_size = 3;
  //当前页码
  $page_num=(!empty($_GET['page']))?$_GET['page']:1;
  //页总数
  $page_count = ceil($count/$page_size);
  $ids = $redis->lrange("uid",($page_num-1)*$page_size,(($page_num-1)*$page_size+$page_size-1));
  //var_dump($ids);
  foreach($ids as $v){
    $data[]=$redis->hgetall("user:".$v);
  }
  /*
  //以下为最初想到的分页处理,放入一个数组中,根据uid的最大值来当总个数,但是删除个别用户以后,uid不会变小,所以建议用链表,因为他有个lsize函数可以求出链表长度
  //根据userid获取所有用户
  for($i=1;$iget("userid"));$i++){
    $data[]=$redis->hgetall("user:".$i);
  }
  //过滤空值
  $data = array_filter($data);
  //var_dump($data);
  */
?>
uidusernameage操作

      删除
      编辑
      
      加关注
      
   

      =1){ ?>
      上一页
      
      
      下一页
      
      首页
      尾页
      当前页
      总共页
      总共个用户
   

[table]
  我关注了谁
  smembers("user:".$id.":following");
    foreach($data as $v){
      $row = $redis->hgetall("user:".$v);
  ?>
  [tr]
    [td][/td]
    [td][/td]
    [td][/td]
  [/tr]
  
[table]
[table]
  我的粉丝
  smembers("user:".$id.":followers");
    foreach($data as $v){
      $row = $redis->hgetall("user:".$v);
  ?>
  [tr]
    [td][/td]
    [td][/td]
    [td][/td]
  [/tr]
  
[table]
退出
logout.php
登录
login.php
get("username:".$username);
  if(!empty($id)){
    $password = $redis->hget("user:".$id,"password");
    if(md5($pass) == $password){
      $auth = md5(time().$username.rand());
      $redis->set("auth:".$auth,$id);
      setcookie("auth",$auth,time()+86400);
      header("location:list.php");
    }
  }
?>
  用户名:
  密码:
  
删除
del.php
hget("user:".$id,"username");
  $a=$redis->del("user:".$uid);
  $redis->del("username:".$username);
  $redis->lrem("uid",$uid);
  //var_dump($a);
  header("location:list.php");
编辑界面
mod.php
hgetall("user:".$uid);
?>
  " name="uid">
  用户名:">
  年龄:">
  
  
编辑功能
doedit.php
hmset("user:".$uid,array("username"=>$username,"age"=>$age));
  if($a){
    header("location:list.php");
  }else{
    header("location:mod.php?id=".$uid);
  }
加关注
addfans.php
sadd("user:".$uid.":following",$id);
  $redis->sadd("user:".$id.":followers",$uid);
  header("location:list.php");
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+redis数据库程序设计技巧总结》、《PHP扩展开发教程》、《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》及《php常见数据库操作技巧汇总
希望本文所述对大家PHP程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • 降低PHP Redis内存占用
  • php中Redis的应用--消息传递
  • PHP基于Redis消息队列实现发布微博的方法
  • PHP实现电商订单自动确认收货redis队列
  • php实现的redis缓存类定义与使用方法示例
  • 详解thinkphp+redis+队列的实现代码
  • PHP使用Redis实现防止大并发下二次写入的方法
  • ubuntu 系统上为php加上redis 扩展的实现方法
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2