使用PHP操作Redis

    科技2024-04-02  96

    使用PHP操作Redis

    入门案例

    步骤: (1)创建一个redis的对象 $redis = new Redis(); (2)连接redis服务器 $redis->connect(‘ip地址’); (3)权限密码验证 $redis->auth(‘密码’); 添加数据如下:

    <?php //创建一个Redis对象 $redis = new Redis(); $redis->connect('192.168.134.10'); $redis->auth('123456'); //添加字符串类型数据 //$redis->set('username','hufei'); //添加哈希类型数据 //$redis->hMSet('hash1',array('id'=>1,'username'=>'luhan','age'=>18)); //添加链表类型数据 //$redis->lPush('list2','zhangjie'); //$redis->lPush('list2','man'); //$redis->lPush('list2','18'); //添加集合类型数据 //$redis->sAdd('set3','zhaoyun'); //$redis->sAdd('set3','man'); //$redis->sAdd('set3','20'); //添加有序集合类型数据 //$redis->zAdd('zset1','5','peng'); //$redis->zAdd('zset1','1','man'); //$redis->zAdd('zset1','1','99');

    获取数据如下:

    <?php $redis = new Redis(); $redis->connect('192.168.134.10'); $redis->auth('123456'); //获取字符串类型数据 var_dump($redis->get('username')); //获取哈希类型数据 var_dump($redis->hGetAll('hash1')); //获取链表类型数据 var_dump($redis->lRange('list2','0','-1')); //获取集合类型数据 var_dump($redis->sMembers('set3')); //获取有序集合类型数据1 var_dump($redis->zRange('zset1','0','-1'));

    使用实列

    需求:在登录密码连续错误的时候,进行计数,如果超过xx次,就在规定时间内不允许登录了(不去验证密码是否对)。

    login.html代码如下

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="login.php"method="post"> 账号:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="登录"> </form> </body> </html>

    login.php代码如下:

    <?php $username = $_POST['username']; $password = $_POST['password']; $user = 'luhan'; $pass = '123456'; $redis = new Redis(); $redis->connect('192.168.134.10'); $redis->auth('123456'); $flag = $redis->get($username); //获取剩余的过期时间 $time = $redis->ttl($username); if ($flag>=3){ echo '密码错误超过3次'; echo "<br>"; echo '请在'.$time.'秒后重试'; exit; } if ($pass == $password){ echo '登录成功'; }else{ echo '登录失败'; //记录错误次数 $redis->incr($username); //设置有效期 $redis->expire($username,60); }

    效果图如下:

    Processed: 0.017, SQL: 8