Redis学习---05

news2024/11/24 15:56:09

一、Redis集群搭建,Redis主从复制,读写分离

默认情况下每台redis服务器都是主节点。

(1)  主从复制:是指将一台redis服务器的数据,复制道其他redis服务。前者成为主节点,后者成为从节点。默认情况下每一台redis服务器都是主节点。主机用来写,从机只能用来读。

(2) 配置从库:需要修改redis.conf的配置文件

配置从库的redis.conf的修改的内容:

端口号:

后台启动:

新建日志文件:

pid进程号文件:

dump.rdb文件名字

命令配置从机:salveof  ip  主机端口号(暂时配置)

info replaction :查看主机的信息;

文件配置:

(3):主机断开连接,主机不能写,从机还能读。主机一旦恢复,还是可以继续写。

(4) 复制原理:

全量复制:从机第一次连接到主机后,主机会进行一次全量的复制给到从机。

增量复制:后面增加一些东西给从机

(5)主机宕机后手动配置主机:

选择从机当作主机输入命令:salveof on one ;之后原来的主机从新启动,那原来的主机需要从新配置,原来的主机之前的从机不存在。

二、哨兵模式(面试重点)

(1) 自动选取主机的方式:自动将从机转为主机

(2) 配置哨兵文件: sentinel.conf (文件名不能错)

(3) 启动哨兵:redis-sentinel  redis_config/sentinel.conf

(4) 如果之前的主机从新启动,那也只能当作新的主机下的从机。

优缺点:

优点:可以主从切换容易,哨兵模式是主从模式的升级,更加健壮。

缺点:不可扩容。

三、缓存击穿、穿透和雪崩 (面试重点)

(1) 缓存击穿

缓存击穿: 一个并发访问量比较大的key在某个时间过期,导致所有的请求直接打在DB上。

 解决:

1) 加锁更新

查询缓存,发现缓存中不存在,加锁,让其它线程等待,只让一个线程去更新缓存。

 

2) 异步更新

还有一个可行的方案是把缓存设置永不过期。那缓存怎么更新呢?通过异步的方式去更新缓存。

比如后台设置一个守护线程定时更新缓存,但这种定时比较难以把握。异步更新机制实际上更适合用于缓存预热。

(2) 缓存穿透

缓存穿透缓存穿透指的查询缓存和数据库中都不存在的数据,这样每次请求直接打到数据库,就好像缓存不存在一样。

 解决:

1)缓存空值/默认值

一种方式是在数据库不命中之后,把一个空对象或者默认值保存到缓存,之后再访问这个数据,就会从缓存中获取,这样就保护了数据库。

 2) 布隆过滤器

除了缓存空对象,我们还可以在存储和缓存之前,加一个布隆过滤器,做一层过滤。

布隆过滤器里会保存数据是否存在,如果判断数据不在,就不会访问存储。

(3) 缓存雪崩

缓存雪崩: 当某⼀时刻发⽣⼤规模的缓存失效的情况,例如缓存服务宕机、大量key在同一时间过期,这样的后果就是⼤量的请求进来直接打到DB上,可能导致整个系统的崩溃,称为雪崩。

解决: 

1) 提高缓存可用性

  • 集群部署:通过集群来提升缓存的可用性,可以利用Redis本身的Redis Cluster或者第三方集群方案如Codis等。
  • 多级缓存:设置多级缓存,第一级缓存失效的基础上,访问二级缓存,每一级缓存的失效时间都不同。

2) 过期时间

  • 均匀过期:为了避免大量的缓存在同一时间过期,可以把不同的 key 过期时间随机生成,避免过期时间太过集中。
  • 热点数据永不过期。

3) 熔断降级

  • 服务熔断:当缓存服务器宕机或超时响应时,为了防止整个系统出现雪崩,暂时停止业务服务访问缓存系统。
  • 服务降级:当出现大量缓存失效,而且处在高并发高负荷的情况下,在业务系统内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的 fallback(退路)错误处理信息。暂停一些不重要的服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

matlab编程基础

1数据结构 1.1常量与变量 变量命名第一个字符必须为字母,变量可以由数字、字母、下划线组成,区分大小写。 常量: 1.2 数值型数据 双精度:64位 智能存储15位左右十进制数 double() 单精度 :32位,single…

C++ 类和对象下 [补充]

文章目录 友元内部类内部类是外部类的天生友元 匿名对象匿名对象的特性 友元 友元函数 重载operator<< 输出自定义类型 比如日期类的这个重载&#xff0c;就是解决类外访问私有变量的例子&#xff0c;设计成了友元函数。 说明&#xff1a; 友元函数可访问类的私有和保护成…

MS31703直流栅极驱动可pin对pin兼容DRV8703

DRV870x-Q1 器件是一款小型单通道 H 桥栅极驱动器&#xff0c;它使用四个外部 N 通道 MOSFET&#xff0c;旨在驱动一个双向刷式直流电机。 PH/EN、独立 H 桥或 PWM 接口允许轻松连接到控制器电路。内部传感放大器提供可调的电流控制。集成的电荷泵可提供 100% 占空比支持&#…

自动化测试 —— Airtest

最近在做APP自动化过程中&#xff0c;有调研Airtest框架的使用&#xff0c;便初步介绍一下Airtest框架的使用&#xff0c;有兴趣的小伙伴&#xff0c;可以一起探讨学习~ (一&#xff09;背景 Airtest是什么&#xff1f; Airtest是一款基于Python的、跨平台的UI自动化测试框架&…

数据结构与算法(三)

一、队列 队列&#xff08;queue&#xff09;:它是一种一种运算受限的线性表&#xff0c;FIFO&#xff08;先进先出&#xff09; 栈&#xff1a;后进先出 受限之处&#xff1a;它只允许表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;在表的后端(rear)进行插…

如何高效搭建影视及游戏工业化管线?

影视和游戏工业化是指制作流程上呈现出标准化、自动化、平台化、数智化的特征。工业化趋势会让制作影视和游戏门槛变高&#xff0c;让其进入精品对决时代。 不进行迭代&#xff0c;就面临被淘汰的危险。 随着受众对于影视和游戏质量的要求越发“苛刻”&#xff0c;精品化是整…

neovim下window的快捷切换

neovim下window的快捷切换 在使用emacs的时候&#xff0c;喜欢加插件window-numbering。 这样在分屏之后的emacs里&#xff0c;通过配置快捷键leaderwnumber 跳转到对应的windows, 而且该软件会在对应底部显示数字提示&#xff0c;非常方便。 另外:为什么不用快捷键leadernumb…

听老人一句劝,别去外包,干了四年,废了....

我是一个普通二本大学机械专业毕业&#xff0c;目前做IT行业的软件测试已经有4年多了&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个…

【源码篇】基于SSM+JSP实现的学生宿舍管理系统

系统介绍 基于SSMJSP实现的学生宿舍管理系统是一个基于B/S模式的学生宿舍管理系统&#xff0c;为学生、学校和宿管阿姨搭建了一个灵活自由并且安全可靠的管理平台。 系统设计了6大菜单模块&#xff0c;分别是 学生管理&#xff1a;学生信息的添加、修改、删除、查询、Excel导…

VariantAutoencoder(VAE)中使用生成好的模型进行声音生成

文章目录 概述一、soundgenerator.py文件soundgenerator.py实现代码一、convert_spectrogram_to_audio方法librosa.db_to_amplitudelibrosa.istft generate方法 二、generate.py文件实现代码load_fsdd函数说明select_spectrogram函数说明save_signals函数说明main函数说明 三、…

ESP32-C2模组使用AT固件示例

ESP32C2 AT固件使用 ESP32 C2模组&#xff0c;如图1-1所示 图1-1 ESP32 C2模组 ESP32 C2开发板&#xff0c;如图1-2所示 图1-2 ESP32 C2开发 方案亮点 1、完整的 WiFi 子系统&#xff0c;符合 IEEE 802.11b/g/n 协议&#xff0c;具有 Station 模式、SoftAP 模式、SoftAP Stat…

npm依赖更新无效

项目场景&#xff1a; 项目是使用ice2.0.0搭建的react项目 项目需要替换新版本的sdk,使用npm进行对应sdk的版本升级 问题描述 卸载sdk tnpm uninstall tds/sdk安装最新版本sdk tnpm i tds/sdk^0.0.16控制台依旧输出旧版本的输出 解决过程 提示&#xff1a;这里填写问题接解决…

C++设计模式之工厂方法模式(Factory Method)

工厂方法模式&#xff08;Factory Method&#xff09; 头号公社 文章目录 别名定义前言1、问题2、解决方案 结构适用场景实现方式优点缺点与其他模式的关系实例Reference 别名 虚拟构造函数&#xff08;Virtual Constructor&#xff09;。 定义 工厂方法是一种创建型设计模式…

前端需要注意和了解的SEO

SEO的基本了解 1.什么是SEO? SEO&#xff08;Search Engine Optimization又叫做搜索引擎优化。是一种方式&#xff1a;利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。 2. 前端怎么理解SEO? 对于SEO引擎&#xff0c;在前端需要的是做出来的网站&#xff0c;页面…

从裸机启动开始运行一个C++程序(二)

先序文章请看&#xff1a; 从裸机启动开始运行一个C程序&#xff08;一&#xff09; 运行在8086上的第一个程序 既然硬件环境已经就绪了&#xff0c;那接下来&#xff0c;就要想办法让它运行我们的程序了。不过在此之前&#xff0c;我们必须要了解一下8086的主要架构&#xf…

小白安装 stabel diffusion 篇

windows 系统安装 stabel diffusion 软件的方法其实很简单&#xff0c;只有 4 步&#xff08;安装过程遇到的报错问题&#xff0c;本文有详细的解决方案&#xff0c;都是我踩过的坑&#xff0c;给大家探路了&#xff09;&#xff1a; 1、安装 python&#xff08;建议安装 3.10…

孙鑫VC++第五章 文本编程

目录 1. 插入符 1.1 创建文本插入符 1.2 创建图形插入符 2. 文字输出和OnDraw函数 2.1窗口重绘 2.2 添加字符串资源 3. 路径层和剪切区域 3.1 路径 3.2 裁剪区域 4. 字符输入 4.1 字符输入 5. 字幕变色功能的实现 5.1 设置字体 5.2字幕变色功能的实现 6. 总结 1…

windows11 安装WSL2全流程

文章目录 1、启用window子系统及虚拟化1.1 命令行方式1.2 使用图形界面 2、手动安装2.1、安装内核更新包2.2、设置默认WSL版本2.3、配置分发版本2.3.1 下载发行版本2.3.2 安装到C盘2.3.3 安装到D盘2.3.3.1 导出镜像2.3.3.2 导入镜像2.3.3.3 默认系统设置及多系统选择 3、自动安…

全景 I 0基础学习VR全景制作,第26章热点功能-文档

本期为大家带来蛙色VR平台&#xff0c;热点功能—文档功能操作。 功能位置示意 热点&#xff0c;指在全景作品中添加各种类型图标的按钮&#xff0c;引导用户通过按钮产生更多的交互&#xff0c;增加用户的多元化体验。 文档热点&#xff0c;即点击热点后会嵌入式弹出所选文档…

一次线上mysql 调优 ,join 的调优,索引优化(Block Nested Loop)

原因&#xff1a; 某接口调用十分缓慢&#xff0c;通过 Explain 发现是SQL问题 FROMorderInfo o LEFT JOIN orderDetail d ONo.orderCode d.orderCode LEFT JOIN user u ONo.userId u.userId LEFT JOIN product p ONd.productCode p.productCode LEFT JOIN adminUser au O…