redis和mysql的整合
一、redis结合mysql
1.redis和mysql的基础概念
mysql:数据放在磁盘
是关系型数据库,主要用于存放持久化数据,
redis:数据放在内存 AOF:增量更新 RDB:覆盖
是NOSQL,非关系型数据库。
2.redis和mysql的区别总结
(1)类型上
从类型上来说,mysql是关系型数据库,redis是缓存数据库
(2)作用上
mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢
redis用于存储使用较为频繁的数据到缓存中,读取速度快
3.为什么要作缓存
当网站的处理和访问量非常大的时候,我们的数据库的压力就变大了,数据库的连接池,数据库同时处理数据的能力就会受到很大的挑战,一旦数据库承受了其最大承受能力,网站的数据处理效率就会大打折扣。此时就要使用高并发处理、负载均衡和分布式数据库,而这些技术既花费人力,又花费资金。
4.redis作为缓存
Redis其实就是说把表中经常访问的记录放在了Redis中,然后用户查询时先去查询Redis再去查询MySQL,确实实现了读写分离,也就是Redis只做读操作。由于缓存在内存中,所以查询会很快。
由上图可以看出, 用户端访问时,请求直接发送给redis,假如redis有数据就可以直接返给用户,假如redis没有,他就会调取数据库上的数据,用户写入的时候是直接写到了数据库上。
二、环境部署
我们主要解决的就是redis和mysql之间的数据同步的问题。
此时我们要模拟一个业务,读的时候从redis里面读,写的时候往mysql里面写,redis中没有的时候,我们要从数据库中进行加载。
step1:将server2作为redis端
先检查2是不是master ,如果是就可以了,如果不是,按下面的步骤进行操作:
server2: vim /etc/redis/6379.conf
注销replicaof 172.25.73.1 6379
加入server2本来就是master,这部忽略
redis-cli
info查看server2是否为master
step2: server4上进行操作,将server4作为数据库端
yum install -y mariadb-server.x86_64
systemctl start mariadb.service
step3: server3是作为lamp架构,在这里一定要注意选取一个干净的server节点去重新安装lamp架构,因为之前安装server1的lamp架构修改过好多参数,直接会影响实验结果
server3安装nginx:
yum install gcc pcre-devel openssl-devel -y 安装依赖性软件
[root@server3 nginx-1.20.2]# ./configure --with-http_ssl_module
[root@server3 nginx-1.20.2]# make && make install
安装好之后,创建软连接
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
vim /usr/local/nginx/conf/nginx.conf 如下图