|
案例1:本地操作通过php操作redis
windows本地进行应用
首先保证自己的环境已经安装上了redis,新建一个PHP文件
编写 phpinfo();
执行这个文件,看下会不会有redis的服务
如果没有 请在环境中的php的php版本的文件夹下的ext文件夹下放入一个 php_redis.dll文件
可以在我的资源那边自行获取
如果执行之后,往下滑,可以看到 redis的配置信息

这表示你的环境已经配置好了redis
接下来就是本地开启redis服务
第一个cmd窗口 cd到redis安装的位置 执行命令 redis-server
然后打开第二cmd窗口 同样也是cd到redis安装的位置 执行命令 redis-cli -a redis密码
第一个窗口不要关闭
接下来在php文件中 这个文件用来set数据
$redis = new Redis();
//连接redis服务
$redis->connect('192.168.1.231');//地址
$redis->auth('123456');//密码
//添加string类型的数据
$redis->set('string1','zzs');
//添加单个哈希类型的数据
$redis->hSet('hash1','1','2');
//添加多个哈希类型的数据
$redis->hMSet('hash2',array(
'id'=>'1',
'username'=>'zzs',
'age'=>'23'
));
//添加链表类型的数据
$redis->lPush('list1','zzs');
$redis->lPush('list1','cnc');
$redis->lPush('list1','hzy');
//添加集合类型数据 无序集合
$redis->sadd('set1','zzs','czx','hzy','lys');
//添加有序集合
$redis->zadd('zset1',10,'zzs',2,'asdasdas');
然后执行这个文件
执行之后 回到我们的第二个cmd窗口
输入keys *获取redis服务当前这个数据库的所有键
就能看到我们刚才set的那个键 user888
再来个文件 用来获取数据 get
$redis = new Redis();
$redis->connect('192.168.1.213');
$redis->auth('123456');
var_dump($redis->get('string1'));//获取字符串数据
var_dump($redis->hGetAll('hash2'));//获取hash类型数据
var_dump($redis->lRange('list1',0,-1));//获取list1链表的所有数据 0 -1 表示全部
var_dump($redis->sMembers('set1'));//获取无序集合的数据
var_dump($redis->zRange('zset1',0,-1));//获取有序集合数据
echo &#39;<pre>&#39;;
如果不是window本地操作 要连接服务器的话 但是出现连接不成功的问题
极大可能是服务器的防火墙没有关掉
执行命令
service iptables stop案例2:本地操作通过php操作redis(登陆功能)
首先看下前端页面
<!DOCTYPE html>
<html lang=&#34;en&#34;>
<head>
<meta charset=&#34;UTF-8&#34;>
<meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;>
<meta http-equiv=&#34;X-UA-Compatible&#34; content=&#34;ie=edge&#34;>
<script charset=&#34;utf-8&#34; src=&#34;https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&#34;></script>
<title>Document</title>
</head>
<body>
<table width=&#34;300&#34;>
<form action=&#34;login1111.php&#34; method=&#34;POST&#34;>
<tr>
<td colspan=&#34;2&#34; align=&#34;center&#34;>用户登陆</td>
</tr>
<tr>
<td>用户名</td>
<td><input type=&#34;text&#34; name=&#34;name&#34;></td>
</tr>
<tr>
<td>密码</td>
<td><input type=&#34;password&#34; name=&#34;password&#34;></td>
</tr>
<tr>
<td><input type=&#34;submit&#34; value=&#34;登陆&#34;></td>
</tr>
</form>
</table>
<script>
</script>
</body>
</html>
然后新建一个php文件,这文件主要是操作redis进行判断登陆的密码是否正确
<?php
header(&#39;Content-type:text/html;charset=utf8&#39;);
$redis = new Redis();
$redis->connect(&#39;192.168.0.180&#39;);
$redis->auth(&#39;123456&#39;);
//定义密码
$ps = &#39;123456&#39;;
//接收传递的用户名和密码
$name = $_POST[&#39;name&#39;];
$password = $_POST[&#39;password&#39;];
//判断密码输错了几次
$flag =$redis->get($name);
if($flag>=5){//如果输错五次
echo &#39;密码输错五次!&#39;;
exit;
}
//密码的验证
if($password == $ps){
//密码正确
echo &#39;密码正确!&#39;;
}else{
//密码错误 错误次数记录起来
//键的名称是登陆的用户名
//incr 将键值+1
$redis->incr($name);
//给$name 设置有效期
$redis->setTimeout($name,1800);
echo &#39;密码错误!&#39;;
}
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要请戳这里链接 或 者关注咱们下面的知乎专栏 |
|