当前位置:   article > 正文

实例项目搭建-redis服务器环境下mysql实现la/nmp架构缓存_redis结合mysql应用场景实例

redis结合mysql应用场景实例

目录

1.流程图

2.场景实例搭建

2.1 场景实例搭建步骤

2.1.1 PHP安装:(web服务器安装)

2.1.2 安装php的redis扩展(web服务器安装)

2.1.3 vim修改/etc/php.ini,添加redis的扩展

2.1.4 重启web(http)服务器

 2.1.5 在httpd的发布目录下编辑如下php页面,然后访问

2.2.6 安装redis(在redis服务器上操作)

2.2.7 配置文件并启动redis

2.2.8 编写php的测试代码(在web服务器)

2.2.9 配置mysql(在mysql服务器)

2.2.10 测试mysql是否连接(在web服务器)

 2.2.11 在mysql创建测试数据

3. 测试验证


1.流程图

2.场景实例搭建

环境规划

ip地址环境
192.168.150.19redis
192.168.150.20web
192.168.150.21mysql

​​关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/enforcing/disabled/' /etc/selinux/config

setenforce 0

同步时间

yum -y install ntp ntpdate

ntpdate cn.pool.ntp.org

hwclock --systohc

2.1 场景实例搭建步骤

2.1.1 PHP安装:(web服务器安装)

yum install php php-fpm php-cli php-common php-gd php-mbstring php-mysql php-pdo php-devel php -xmlrpc php-xml php-bcmath php-dba php-enchant -y

2.1.2 安装phpredis扩展(web服务器安装)

wget http://pecl.php.net/get/redis-2.2.7.tgz

tar -zxvf redis-2.2.7.tgz  
cd redis-2.2.7/
phpize
./configure
make install
phpize php 进行添加扩展。并且 phpize 编译的扩展库可以随时启用或停用,比较灵活。
编译完成后可以看到安装的目录如下,进入后可以看到编译的模块 redis.so

2.1.3 vim修改/etc/php.ini,添加redis的扩展

2.1.4 重启web(http)服务器

systemctl restart httpd

 2.1.5 httpd的发布目录下编辑如下php页面,然后访问

  1. [root@192 html]# cat index.php
  2. <?php
  3. phpinfo();
  4. ?>

注意:找到redis才算ok

2.2.6 安装redis(在redis服务器上操作)

wget -c -t 0 http://download.redis.io/releases/redis-2.8.19.tar.gz

 tar -xvf redis-2.8.19.tar.gz

 make

2.2.7 配置文件并启动redis

修改redis.confdaemonize no改为yes  

 启动redis

src/redis-server redis.conf

2.2.8 编写php的测试代码(在web服务器)

vim redis.php

  1. <?php
  2. $redis = new Redis();
  3. $redis->connect('192.168.150.19',6379) or die ("could net connect redis server"); ## 这里面ip 是redis服务器ip
  4. # $query = "select * from testab limit 5";
  5. $query = "select * from testab"; ##这里改成自己mysql存在的表
  6. for ($key = 1; $key < 10; $key++)
  7. {
  8. if (!$redis->get($key))
  9. {
  10. $connect = mysql_connect('192.168.150.21','redis','Zcf@201104'); ##mysql的ip
  11. mysql_select_db(testab);
  12. $result = mysql_query($query);
  13. $arr = [];
  14. while ($row = mysql_fetch_assoc($result))
  15. {
  16. $redis->setex($row['id'],10,$row['name']);
  17. $arr[] = $row;
  18. }
  19. $myserver = 'mysql';
  20. $data = $arr;
  21. break;
  22. }
  23. else
  24. {
  25. $myserver = "redis";
  26. $data[$key] = $redis->get($key);
  27. }
  28. }
  29. echo $myserver;
  30. echo "<br>";
  31. for ($key = 1; $key < 10; $key++)
  32. {
  33. echo "number is <b><font color=#FF0000>$key</font></b>";
  34. echo "<br>";
  35. if ($myserver == "mysql") {
  36. $arr2 = array_map('end',$data);
  37. echo "name is <b><font color=#FF0000>$arr2[$key]</font></b>";
  38. echo "<br>";
  39. }
  40. else {
  41. echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
  42. echo "<br>";
  43. }
  44. }

2.2.9 配置mysql(在mysql服务器)

在mysql服务器创建用户redis

create user 'redis'@'%' indentified by 'Zcf@201104'

alter user 'redis'@'%' indentified with mysql_native_password by 'Zcf@201104' 

flush privileges

2.2.10 测试mysql是否连接(在web服务器)

vim mysql.php

  1. <?php
  2. $link=mysql_connect('192.168.150.21','redis','Zcf@201104');
  3. if($link) echo "Success!!";
  4. else echo "Fail!!";
  5. mysql_close();
  6. ?>

 2.2.11 在mysql创建测试数据

  1. mysql> select * from testab;
  2. +------+------+
  3. | id | name |
  4. +------+------+
  5. | 1 | tom |
  6. | 2 | tom1 |
  7. | 3 | tom2 |
  8. | 4 | tom3 |
  9. | 5 | tom4 |
  10. | 6 | tom5 |
  11. | 7 | tom6 |
  12. | 8 | tom7 |
  13. | 9 | tom8 |
  14. | 10 | tom9 |
  15. +------+------+
  16. 10 rows in set (0.00 sec)

3. 测试验证

 第一次访问,redis中没有对应的KEY值

 刷新,再次访问,此时redis中已有相关数据

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/165206
推荐阅读
相关标签
  

闽ICP备14008679号