一、redis和mysql介绍
Redis基于内存,读写速度快,也可做持久化,但是内存空间有限,当数据量超过内存空间时,需扩充内存,但内存价格贵。

MySQL基于磁盘,读写速度没有Redis快,但是不受空间容量限制,性价比高。

大多数的应用场景是MySQL(主)+Redis(辅),MySQL做为主存储,Redis用于缓存,加快访问速度。需要高性能的地方使用Redis,不需要高性能的地方使用MySQL。存储数据在MySQL和Redis之间做同步。

二、redis和mysql的区别
两者的区别非常大。
具体如下:

  1. mysql是一个中小型的网络数据库,比oracle和sqlserver小, 但是并发能力远超过acess这样的桌面数据库。
  2. redis是一个支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
  3. 可以认为redis比mysql简化很多。
  4. mysql支持集群。

现在大量的软件使用redis作为mysql在本地的数据库缓存,然后再适当的时候和mysql同步。

三、为什么使用缓存?
当网站的处理和访问量非常大的时候,我们的数据库的压力就变大了,数据库的连接池,数据库同时处理数据的能力就会受到很大的挑战,一旦数据库承受了其最大承受能力,网站的数据处理效率就会大打折扣。此时就要使用高并发处理、负载均衡和分布式数据库,而这些技术既花费人力,又花费资金。

四、什么是redis缓存到mysql?
Redis其实就是说把表中经常访问的记录放在了Redis中,然后用户查询时先去查询Redis再去查询MySQL,确实实现了读写
分离,也就是Redis只做读操作。由于缓存在内存中,所以查询会很快。对于一个sql语句格式的数据请求,首先计算该语句的MD5并据此得到结果集标识符,然后利用该标识符在Redis中查找该结果集。注意,结果集中的每一行都有一个相应的键,这些键都存储在一个Redis集合结构中。如果Redis中不存在这样一个集合,说明要找的结果集不在Redis中,所以需要执行相应的sql语句,在Mysql中查询到相应的结果集,然后按照上面所说的办法把结果集中的每一行以字符串或哈希的形式存入Redis。

step1 用killall命令删掉resid-server进程

yum whatprovides */killall
yum istall psmisc-22.20-11.el7.x86_64 -y
killall redis-server
ps -ax

在server2
安装nginx

tar zxf nginx-1.14.0.tar.gz 
cd nginx-1.14.0
yum install pcre-devel -y
 yum install zlib-devel -y#解决依赖性
 ./configure --prefix=/usr/local/nginx
 make && make install

redis 存储date redis 存储 mysql_nginx


redis 存储date redis 存储 mysql_redis 存储date_02


编辑文本

[root@server2 nginx-1.14.0]# cd /usr/local/nginx/
[root@server2 nginx]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/#创建软链接
[root@server2 nginx]# cd conf/
[root@server2 conf]# vim nginx.conf

redis 存储date redis 存储 mysql_nginx_03


redis 存储date redis 存储 mysql_Redis_04


redis 存储date redis 存储 mysql_Redis_05

[root@server2 conf]# useradd -u 900 nginx#创建用户
[root@server2 conf]# nginx#启动nginx
[root@server2 conf]# netstat -anplt#查看是否启动成功

卸掉之前的php

redis 存储date redis 存储 mysql_redis 存储date_06


安装php(直接安装下面的包,避开编译安装)

redis 存储date redis 存储 mysql_redis 存储date_07

[root@server2 rhel]# yum install * -y
[root@server2 rhel]# systemctl start php-fpm #启动

redis 存储date redis 存储 mysql_mysql_08

在/usr/local/nginx/html下编辑index.php

redis 存储date redis 存储 mysql_nginx_09


redis 存储date redis 存储 mysql_Redis_10


redis 存储date redis 存储 mysql_redis 存储date_11


在redis主库server3上删除以前信息,方便测试

redis 存储date redis 存储 mysql_nginx_12


server4作为mysql

删掉之前的mysql

redis 存储date redis 存储 mysql_mysql_13


安装mariadb

[root@server4 ~]# yum install mariadb-server -y
[root@server4 ~]# systemctl start mariadb
[root@server4 ~]# mysql_secure_installation#初始化密码
[root@server4 ~]# mysql -uroot -pWestos.123#使用新密码登录

redis 存储date redis 存储 mysql_mysql_14

测试:

在mysqlserver4上

redis 存储date redis 存储 mysql_redis 存储date_15


[root@server4 ~]#vim test.sql#编写数据

[root@server4 ~]# mysql -pWestos.123 < test.sql#导入数据

redis 存储date redis 存储 mysql_mysql_16

[root@server2 html]# vim index.php #在server2的该目录下编辑

redis 存储date redis 存储 mysql_Redis_17


此时访问server2:第一次从mysql访问,接下来都是在redis库访问

redis 存储date redis 存储 mysql_redis 存储date_18


redis 存储date redis 存储 mysql_nginx_19