|NO.Z.00109|——————————|^^ 部署 ^^|——|Linux&MySQL+Redis.V03|——|PHP脚本|

一、开启 redis,并编写脚本
### --- 开启 redis,并编写脚本

[root@server21 ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/
### --- 配置后台启动

[root@server21 ~]# vim /usr/local/redis/redis.conf  
daemonize yes
 
[root@server21 ~]# redis-server  /usr/local/redis/redis.conf 
[root@server21 ~]# netstat -antp |grep 6379
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      7384/redis-server * 
tcp        0      0 :::6379                     :::*                        LISTEN      7384/redis-server * 
### --- 将PHP脚本页面放至网页的访问目录下

[root@server21 ~]# vim redis-mysql.php 

<?php
                ini_set("display_errors", "On");
                error_reporting(E_ALL | E_STRICT);
                # 开启debug 


                # mysql 库: mytest 表:test 
        $redis = new redis();
<?php           
                ini_set("display_errors", "On");
                error_reporting(E_ALL | E_STRICT);
                # 开启debug 

                
                # mysql 库: mytest 表:test 
        $redis = new redis();
        $redis->connect('127.0.0.1',6379);
        $query = "select * from test limit 5";
        for ($key=1;$key<=5;$key++)
        {
                if (!$redis->get($key))
                                # 判断redis中是否有1 2 3 4 5 的键,没有连接数据库查询mytest库的test表,然后插入到redis中
                {
                        $connect = mysql_connect('127.0.0.1','root','123456');
                        mysql_select_db(mytest);
                        $result = mysql_query($query);
                                                var_dump ($result);
                        while ($row = mysql_fetch_assoc($result))
                        {
                                $redis->setex($row['id'],30,$row['name']);
                         # 从MySQL中获取的资源插入到redis中,并设置有效时间为30s
                        }
                        $myserver = 'mysql';
                        break;
                }
                else
                                # 判断redis中是否有1 2 3 4 5 的键,有直接打印redis中的 1 2 3 4 5 键的值。
                {
                        $myserver = "redis";
                        $data[$key] = $redis->get($key);
                }
        }
                        echo $myserver;
                        echo "<br>";
                        for ($key=1;$key<=5;$key++)
                        {
                                echo "number is <b><font color=#FF0000>$key</font></b>";
                                echo "<br>";
                                echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
                                echo "<br>";
                        }
?>
### --- 将发布页面放至网页访问目录下

[root@server21 ~]# cp -a redis-mysql.php /www/redis.php
### --- 通过Chrome访问http://20.20.20.21/redis.php输出如下内容
~~~     第一次访问的时候,Redis是没有数据的,从数据库里面调取到数据
~~~     http://20.20.20.21/redis.php        

Notice: Use of undefined constant mytest - assumed 'mytest' in /www/redis.php on line 17 resource(4) of type (mysql result) mysql
number is 1
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 2
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 3
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 4
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 5
Notice: Undefined variable: data in /www/redis.php on line 41 name is  
二、验证 php 访问 redis 和 mysql
### --- 再次刷新获取到Redis数据

http://20.20.20.21/redis.php
redis
number is 1
name is a1
number is 2
name is a2
number is 3
name is a3
number is 4
name is a4
number is 5
name is a5  
 ### --- 30秒之内查询数据都是从Redis里面获取数据,30秒之后,
~~~     数据失效,回到初始页面;就需要从数据库里面再次获取数据,
~~~     向Redis里面再插入一份。30秒提高了数据的一致性问题。

Notice: Use of undefined constant mytest - assumed 'mytest' in /www/redis.php on line 17 resource(4) of type (mysql result) mysql
number is 1
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 2
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 3
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 4
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 5
Notice: Undefined variable: data in /www/redis.php on line 41 name is
redis
number is 1
name is a1
number is 2
name is a2
number is 3
name is a3
number is 4
name is a4
number is 5
name is a5

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(39)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示