redis知识汇总(部署、高可用、集群)

news2024/12/25 13:31:07

文章目录

  • 一、redis知识汇总
    • 什么是redis
    • redis的优缺点:
    • 为什么要用redis做缓存
    • redis为什么这么快
    • 什么是持久化
    • redis持久化机制是什么?各自优缺点?
    • AOF和RDB怎么选择
    • redis持久化数据和缓存怎么做扩容
    • 什么是事务
    • redis事务的概念
    • ACID概念
    • 主从复制
    • redis主从复制原理
  • 一、redis部署
  • 二、redis高可用

一、redis知识汇总

什么是redis

是开源免费的,高性能的k/v数据库
特点:支持数据的持久化、可以将内存中的数据保存在磁盘中,重启的时候再次加载使用;不仅支持k/v类型的数据,还提供list、set、zset(有序集合)、hash等数据结构的存储
支持数据的备份,也就是master-slave模式的数据备份

redis的优缺点:

优点:
读写性能优异;支持数据持久化、支持AOF、RDB两种持久化方式
支持事务,redis所有操作都是原子性的
数据结构丰富
支持主从复制、可以进行读写分离
缺点:
数据库内存受物理内存的限制,不能作海量数据的高性能读写
不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败
主机宕机,宕机前部分数据未能及时同步到从机,切换ip会引起数据不一致的问题,降低系统可用性
较难支持在线扩容,集群容量达到上限时在线扩容会变得复杂。

为什么要用redis做缓存

主要是因为它的高性能、高并发
高性能:用户第一次访问数据,会从硬盘上读取,但是他会将用户访问过的数据存在缓存中,这样下次用户访问就是从缓存中获取数据,也就是直接操作内存,速度非常快
高并发:直接操作缓存能够承受的请求量是远远大于直接访问数据库的,如mysql,如果请求量过大,可能承受不住。

redis为什么这么快

完全基于内存,绝大部分的请求是直接基于内存操作
数据结构简单,对数据的操作也简单
采用单线程,避免了多线程或者多线程的切换导致的CPU消耗,不用考虑各种锁的问题
采用多路i/o复用模型

什么是持久化

持久化就是把内存的数据写到磁盘中去,防止宕机后内存数据丢失

redis持久化机制是什么?各自优缺点?

持久化机制:
RDB(默认)
AOF
RDB:是默认的持久化方式;每隔一段时间,就把内存中的数据保存到硬盘上的指定文件中。触发RDB的方式有手动触发和被动触发
手动触发对应save和bgsave命令;
在这里插入图片描述
优点:只有一个文件dump.rdb,方便做持久化
性能最大化,fork子进程完成写操作,保证io最大化
相对于数据集大时,比AOF启动效率更高
缺点:数据安全性低,因为是没过一段时间进行数据持久化,如果在这个间断发生故障,就会导致数据丢失
AOF:AOF是以日志形式记录每个动作,每次操作都会以二进制命令的形式保存到指定文件中;两种方式同时开启时,数据恢复redis会优先选择AOF恢复
优点:数据安全,通过append模式写文件,即使中途服务器宕机,可以通过redis-check-aof工具解决数据一致性问题
如果不小心使用flushall命令清空所有数据,只要还没执行rewrite,那么就可以将日志文件中的flushall删除,进行恢复
缺点:AOF开启之后支持写的QPS(美妙查询率)会比RDB支持写的QPS低;数据恢复比较慢,不适合做冷备

AOF和RDB怎么选择

结合起来使用,用AOF保证数据不丢失,用RDB做不同程度的冷备,在AOF文件丢失不可用时,可以用RDB快速恢复

redis持久化数据和缓存怎么做扩容

如果redis被当做缓存使用,使用一致性哈希实现动态扩容缩容
如果被当做持久化存储,必须使用固定的keys-to-nodes映射关系,节点数量一旦确定不能变化,否则就要使用redis集群

什么是事务

事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

redis事务的概念

Redis 事务的本质是通过MULTI(事物开始)、EXEC(事务执行)、WATCH等一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。总结:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。

ACID概念

原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性
事务前后数据的完整性必须保持一致。
隔离性
多个事务并发执行时,一个事务的执行不应影响其他事务的执行
持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响
Redis的事务总是具有ACID中的一致性和隔离性,其他特性是不支持的。当服务器运行在AOF持久化模式 下,并且appendfsync选项的值为always时,事务也具有耐久性。

主从复制

主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为 主节点(master),后者称为 从节点(slave)。且数据的复制是 单向 的,只能由主节点到从节点。Redis 主从复制支持 主从同步 和 从从同步 两种,后者是 Redis 后续版本新增的功能,以减轻主节点的同步负担。
作用:
数据冗余: 主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
故障恢复: 当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复 (实际上是一种服务的冗余)。
负载均衡: 在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务 (即写 Redis 数据时应用连接主节点,读 Redis 数据时应用连接从节点),分担服务器负载。尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高 Redis 服务器的并发量。
高可用基石: 除了上述作用以外,主从复制还是哨兵和集群能够实施的 基础,因此说主从复制是 Redis 高可用的基础。

redis主从复制原理

保存主节点(master)信息 这一步只是保存主节点信息,保存主节点的ip和port
主从建立连接 从节点(slave)发现新的主节点后,会尝试和主节点建立网络连接
发送ping命令 连接建立成功后从节点发送ping请求进行首次通信,主要是检测主从之间网络套接字是否可用、主节点当前是否可接受处理命令。
权限验证 如果主节点要求密码验证,从节点必须正确的密码才能通过验证。
同步数据集 主从复制连接正常通信后,主节点会把持有的数据全部发送给从节点。
命令持续复制 接下来主节点会持续地把写命令发送给从节点,保证主从数据一致性

一、redis部署

下载并且编译,将整个目录直接拷贝至另一台主机作为slave端
修改slave端的配置文件,将master ip指向master端,端口6379,就完成了主从复制。redis的主从的配置比较简单。

在这里插入图片描述
我们可以看到,在master上查看info,就可以看到slave那里变成了1,也就是现在我们有一个slave端,以及这个slave端的ip、状态等等

二、redis高可用

首先我们需要再加一台slave,配置方法和上边一样;我们使用sentinel来做故障切换,即高可用
在这里插入图片描述
完成之后,我们在master端会看到slave数量为2,相关的端口、ip也都会显示;这些是做高可用的基础

首选我们需要在另外一台主机上ssh我们的master,并且shutdown redis,这个时候我们就会在log中看到master端down,并且会选举出新的master端代替原来的master,在我们重新又开启原来master的redis之后,此主机就会成为slave,并且指向新的刚选举出的master上。

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

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

相关文章

03 OpenCV图像运算

文章目录1 普通加法1 加号相加2 add函数2 加权相加3 按位运算1 按位与运算2 按位或运算、非运算4 掩膜1 普通加法 1 加号相加 在 OpenCV 中,图像加法可以使用加号运算符()来实现。例如,如果要将两幅图像相加,可以使用…

JVM - 类加载,连接和初始化

目录 类加载和类加载器 概述 类加载要完成的功能 加载类的方式 类加载器 类加载器的关系 类加载器说明 双亲委派模型 工作过程如下: 双亲委派模型说明: 破坏双亲委派模型: 类连接和初始化 类连接主要验证的内容 类连接中的解析…

c++重中之重:“换个龟壳继续套娃“:运算符重载等的学习

文章目录 前言一.运算符重载二.const成员三.取地址重载总结前言 上一期我们讲到类的6个默认构造函数中的拷贝构造函数,这一期我们继续往下讲,当然难点肯定是运算符重载了。 一、运算符重载 运算符重载是c为了增强代码的可读性引入了运算符重载&#xf…

笑死,面试官又问我SpringBoot自动配置原理

面试官:好久没见,甚是想念。今天来聊聊SpringBoot的自动配置吧? 候选者:嗯,SpringBoot的自动配置我觉得是SpringBoot很重要的“特性”了。众所周知,SpringBoot有着“约定大于配置”的理念,这一…

亿级高并发电商项目-- 实战篇 --万达商城项目 四(Dashboard服务、设置统一返回格式与异常处理、Postman测试接口 )

专栏:高并发---前后端分布式项目 👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、…

Spring-事务2

文章目录前言一、事务的特性(ACID)二、事务的隔离级别三、spring中的事务平台事务管理器.事务定义ISOLation_XXX:**事务隔离级别.**PROPAGATION_XXX:**事务的传播行为**.事务状态关系:四、使用XML文件配置事务1、 搭建…

2023前端面试题——JS篇

1.判断 js 类型的方式 1. typeof 可以判断出’string’,‘number’,‘boolean’,‘undefined’,‘symbol’ 但判断 typeof(null) 时值为 ‘object’; 判断数组和对象时值均为 ‘object’ 2. instanceof 原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置 …

Vue原理解析

文章目录1. VUE的响应式原理1.1 ViewModel1.2 双向绑定的基本原理1.3 什么是响应性1.4 Vue 中的响应性是如何工作的2. Vue 渲染机制2.1 虚拟 DOM2.2 渲染管线2.3 带编译时信息的虚拟 DOM2.3.1 静态提升2.3.2 修补标记 Flags2.3.3 树结构打平2.3.4 对 SSR 激活的影响1. VUE的响应…

Zookeeper安装和基本使用

目录标题一、下载二、安装三、启动客户端测试四、使用zk一、下载 注意:自zk3.5.5版本以后,已编译的jar包,尾部有bin,应该使用的是apache-zookeeper-3.8.0-bin.tar.gz。,因此在下载高版本时,因该下载后缀带b…

华为手表开发:WATCH 3 Pro(5)点击按钮弹窗

华为手表开发:WATCH 3 Pro(5)点击按钮弹窗初环境与设备创建项目认识目录结构修改首页 -> 新建按钮 “ 按钮 ”文件名:**index.hml**引用包:system.prompt点击结果初 鸿蒙可穿戴开发 希望能写一些简单的教程和案例…

三大指标继续狂飙!重庆啤酒:不惧强弱分化加剧,深耕高端市场

十多年前,重庆啤酒因为9个跌停而被一片唱衰,资本市场经典的“关灯吃面”典故自此出现,被股民沿用至今。不过自2020年,重庆啤酒开始逆转走势,股价连续上涨。2021年重庆啤酒营收突破百亿大关,净赚11.66亿元&a…

关于小程序,你想知道的这些

近年来,各大平台纷纷上架小程序,迎来了小程序的爆发式增长。今天就来跟大家简单分享一下小程序基本的运行机制和安全机制。 小程序的由来 在小程序没有出来之前,最初微信WebView逐渐成为移动web重要入口,微信发布了一整套网页开…

自监督表征学习方法——BYOL(Bootstrap Your Own Latent)

自监督表征学习方法——BYOL(Bootstrap Your Own Latent) 参考文献:《Bootstrap Your Own Latent A New Approach to Self-Supervised Learning》 1.前言背景 学习良好的图像表示是计算机视觉中的一个关键挑战,因为它允许对下游任务进行有效的训练。许…

POE接口电路设计

首先看到PSE端,主要包含PSE芯片,MOS管(有些PSE芯片MOS管是集成在芯片里面的),自恢复保险丝,还有TVS管,一般这个TVS管保护电压是58V的。这个电阻是用来检测POE传输的电流的,一般是0.几…

vue2 diff算法及虚拟DOM

概括:diff算法,虚拟DOM中采用的算法,把树形结构按照层级分解,只比较同级元素,不同层级的节点只有创建和删除操作。 一、虚拟DOM (1) 什么是虚拟DOM? 虚拟 DOM (Virtual DOM,简称 VDOM) 是一种…

KDDAC-10kV 电缆交流耐压及振荡波局放测试系统

一、概述 目前对电力电缆检修的管理,主要是依据《电力设备交接和预防性试验规程》所规定的项目和试验周期,定期在停电状态下进行绝缘性能试验。其中变频串联谐振试验由于试验状况接近电缆的运行工况,因此成为国内目前应用广泛的试验方法。 …

社科院与杜兰大学中外合作办学金融管理硕士——30+的年龄在职读研有必要吗?

说起读研,年龄在什么区间最合适呢?上次有位咨询的同学反馈年龄已经快35岁了,有一份不错的工作,但又不甘心止步于此,想要通过提升学历升职加薪,但又纠结自己是否能静下心来学习、是否能顺利毕业、拿到的证书…

[HSCSEC 2023] rev,pwn,crypto,Ancient-MISC部分

比赛后有讲解,没赶上,前20比赛完1小时提交WP,谁会大半夜的起来写WP。总的感觉pwn,crypto过于简单,rev有2个难的不会,其它不是我的方向都感觉过于难,一个都没作。revDECOMPILEONEOONE入门题,一个…

12 循环神经网络(基础篇) Basic RNN

文章目录问题引入关于权重权重共享RNN CellRNN原理RNN计算过程代码实现RNN Cell维度说明代码RNN维度说明NumLayers说明计算过程代码参考实例问题分析多分类问题代码RNN CellRNN改进Embedding网络结构Embedding说明Linear说明代码课程来源: 链接课程文本参考&#xf…

前端react面试题指南

概述下 React 中的事件处理逻辑 抹平浏览器差异,实现更好的跨平台。避免垃圾回收,React 引入事件池,在事件池中获取或释放事件对象,避免频繁地去创建和销毁。方便事件统一管理和事务机制。 为了解决跨浏览器兼容性问题&#xff0…