我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql缓存 (redis)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql缓存 (redis)

Mysq需要注意的地方:

mysql主从复制 延迟来自于 sql线程(解决:myslq5.7 可设置成多线程并行)
数据库监控:lepus

大型数据库的删除(安全快速的方法 一部分一部分删除)(不推荐暴力的删除 DELETE DROP 会造成主从不一致)
expire_log_days 0 (默认数据库不会删除)
set global expire_logs_days=7 (设置七天后删除)

TiDB(分布式)

数据备份一定要在slave上做 以免加重master的负担
数据库缓存:redis(nosql的缺点:数据无法持久化因为工作在内存 而且内存容量有限 优点:速度快 但redis可以数据保持 工作在内存 数据会保存在磁盘)
读写分离:加代理(数据库访问层 proxy)

nosql数据库可以直接连接一个redis (速度超快)
但是数据与数据之间是有关系的所以还得连接mysql:
client(KV) -->redis --(钩子函数)>mysql

高并发mysql:(肯定要走读写分离)
client -->中间键(专门开发 做分发 确认客户需求 因为LVS不懂这些 只做转发)-->LVS(开发:等价路由 扩展多个LVS)-->nginx(多个一个LVS对应一个nginx)-->BD(cluster)


数据库缓存:(redis)
三台虚拟机:
dd1:(nginx php)
查看之前是否安装过:
rpm -qa | grep php
rpm -qa | grep httpd
mysql缓存 (redis)
yum install -y nginx-1.8.0-1.el6.ngx.x86_64.rpm
rpm -ivh php-cli-5.3.3-38.el6.x86_64.rpm php-common-5.3.3-38.el6.x86_64.rpm
rpm -ivh php-mysql-5.3.3-38.el6.x86_64.rpmphp-pdo-5.3.3-38.el6.x86_64.rpm
yum install php-5.3.3-38.el6.x86_64.rpm
cd /etc/php-fpm.d
vim www.conf (
更改用户名用户组 nginx)

/etc/init.d/php-fpm start
mysql缓存 (redis)
netstat -antlpe | grep php
mysql缓存 (redis)
cd /etc/nginx/conf.d
vim default.conf (nginx开启php模块)
mysql缓存 (redis)
nginx -t
nginx (开启nginx)
netstat -antlpe | grep nginx

mysql缓存 (redis)
cd /usr/share/nginx/html/
测试:nginx php是否安装成功
mysql缓存 (redis)
dd3:yum install mysql-server -y (版本太低 只适合测试用)
/etc/init.d/mysqld start

dd1:scp redis-3.2.5.tar.gz root@172.25.42.11:

dd2:
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install
cd utils
./install_server.sh
netstat –antlpe

mysql缓存 (redis)
cd /etc/redis
vim 6379.conf (绑定监听端口)
 /etc/init.d/redis_6379 restart
redis-cli
mysql缓存 (redis)
dd1:(php 加载redis模块

mysql缓存 (redis)
yum install unzip -y
unzip phpredis-master.zip
yum install php-devel-5.3.3-38.el6.x86_64.rpm
cd phpredis-master
phpize (指定模块安装路径)

mysql缓存 (redis)
./configure
make && make install

vim /etc/php.ini (更改时区)
mysql缓存 (redis)
cd /etc/php.d
cp mysql.ini redis.ini
vim redis.ini

mysql缓存 (redis)
/etc/init.d/php-fpm reload
php -m | grep redis (查看加载模块是否成功)
mysql缓存 (redis)
cp test.php /usr/share/nginx/html/index.php(测试页面)
vim /usr/share/nginx/html/index.php
mysql缓存 (redis)
scp test.sql 172.25.42.12:(redis) (数据库内容)


dd3:
grant select on test.* to redis@'172.25.42.%' identified by 'westos'

mysql缓存 (redis)
select * from test

mysql缓存 (redis)
测试:
页面测试:第一次访问的是数据库 第二此访问的是cache

mysql缓存 (redis)
缺陷:如果更新mysql数据库的内容,cache不会察觉,里面数据内容不会更改, 用户访问的时候,得到的还是缓存里面旧的内容,只能手动删除cache里面的旧的数据 才能重新更新
update test set name='westos'where id =1

mysql缓存 (redis)mysql缓存 (redis)


redis主从:(备份) redis是单进程的解决办法:跑多个进程 将进程与cpu绑定
dd3:(不同服务不同端口 为了避免多开虚拟机 就在dd3上面做啦~)
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install (yum install gcc -y)
cd utils/
./install_server.sh

mysql缓存 (redis)
cd /etc/redis/
vim 6379.conf (slaveof)

mysql缓存 (redis)
/etc/init.d/redis_6379 restart

测试:redis-cli

主从切换:(一主多从 一主双从)
dd1:(不同服务不同端口 为了避免多开虚拟机 就在dd1上面做啦~)
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install (yum install gcc -y)
cd utils/
./install_server.sh
cd /etc/redis/
vim 6379.conf (slaveof)

mysql缓存 (redis)
/etc/init.d/redis_6379 restart

mysql缓存 (redis)
cd redis-3.2.5
cp sentinel.conf  /etc/redis
vim sentinel.conf

mysql缓存 (redis)

mysql缓存 (redis)

mysql缓存 (redis)


scp sentinel.conf root@172.25.42.12:/etc/redis/
scp sentinel.conf root@172.25.42.11:/etc/redis/
redis-server /etc/redis/sentinel.conf --sentinel (三台都做) (会打开一个新的监控端口)
查看:redis-cli -p 26379 (26379:监控每一个端口
mysql缓存 (redis)
redis-cli
127.0.0.1:6379> monitor (master 每一秒都在给slave发包)
mysql缓存 (redis)
 


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql缓存 (redis)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mysql与redis缓存一致性

在高并发场景下单单使用mysql提供数据服务显然,是无法满足系统的吞吐量,目前的系统架构中我们一般会采用redis做数据缓存,以此避免请求过多的走数据库从而影响系统性能。但是在高并发场景下保持mysql与redis数据的一致性问题不容忽视。一、缓存的使用  二
Mysql与redis缓存一致性
2015-02-14

redis缓存

分布式项目的常见问题:对于首页每天有大量的人访问,对数据库造成很大的访问压力,甚至是瘫痪。那如何解决呢?我们通常的做法有两种:一种是数据缓存、一种是网页静态化。redis是一款开源的Key-Value数据库,运行在内存中,由ANSIC编写。企业开发通常采用re
2019-04-17

缓存 | Redis 缓存避坑指南

作者:马功伟 青云科技软件开发工程师目前从事青云数据库管理平台开发工作,一直从事 Server 端开发工作。高并发业务场景下,常使用缓存技术缓解数据库压力,可极大的提升用户体验和系统稳定性。由于 Redis 自身的诸多特性,很适合用来做缓存。下面是一个常见
缓存 | Redis 缓存避坑指南
2018-09-22

Redis缓存穿透、缓存击穿、缓存雪崩

使用redis作为缓存时,存在一些应用问题,包括缓存穿透、缓存击穿、缓存雪崩。 Redis缓存穿透、缓存击穿缓存雪崩redis常被用于作为后台数据库的缓存,缓存一些热点访问数据,根据局部性原理,缓存能够处理大部分请求。当请求数据未命中缓存时,才会引起对数
Redis缓存穿透、缓存击穿、缓存雪崩
2014-07-07

Redis:缓存穿透、缓存击穿、缓存雪崩?

正常情况下,一个请求过来,首先判断key是否存在,如果key存在,直接返回;如果key不存在或者已过期,查询数据库,如果数据库中存在数据,则更新缓存并返回数据;如果不存在,则直接返回空。

Redis系列(六)Redis 的缓存穿透、缓存击穿和缓存雪崩

NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了。但是感觉回答的并不好,还有很多需要梳理的知识点。这里通过几篇 Redis 笔记整个梳理一遍,后面再加上面试题。Redis 系列:1. Redis系列(一)Redis入门2.
Redis系列(六)Redis 的缓存穿透、缓存击穿和缓存雪崩
2021-02-26

MySQL数据怎么同步到Redis缓存

这篇“MySQL数据怎么同步到Redis缓存”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL数据怎么同步到Redis
2023-07-05

redis是内存缓存吗

是的,redis 是一款内存缓存。它将数据存储在内存中,提供高速读写访问、低延迟,并支持多种数据结构。广泛用于缓存、消息队列、会话管理和排名列表等应用程序中。Redis 是内存缓存吗?是的,Redis 是一个内存缓存。详细说明:Red
redis是内存缓存吗
2024-04-20

redis的缓存雪崩、缓存穿透和缓存击穿

缓存雪崩:比如给缓存中的key设置了统一的过期时间,而在过期时间点,有大量的请求进来,这个时候redis中没有用户请求的资源,所以所有的请求会全部拥到数据库,如果数据库有报警监测的话,可能会报一下警,然后数据库就挂掉了。如果这时候把数据重新起来,redis上还
2017-11-21

MySQL与redis缓存怎么实现同步

MySQL与redis缓存怎么实现同步?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、方案1(UDF)场景分析:当我们对MySQL数据库进行数据操作时,同时将
2023-06-14

redis缓存雪崩和缓存击穿区别

缓存雪崩与击穿的区别:发生时间:雪崩是多个缓存同时失效,击穿是单个缓存失效。影响范围:雪崩影响所有缓存,击穿仅影响单个热点数据。导致原因:雪崩是由不当的过期策略引起的,击穿是由缓存穿透或热点数据未缓存引起的。影响程度:雪崩可能导致服务不可用
redis缓存雪崩和缓存击穿区别
2024-04-19

大厂面试Redis:缓存雪崩、缓存穿透、缓存击穿

眼光不错,小伙子,看到这篇文章了就血赚,这篇文章绝对让你学到开心,这是面试的杀器,其实Redis这个东西吧,我个人认为,真的真的很强大,但是呢,又感觉被吹得有点过头了。

编程热搜

目录