主从复制、读写分离、集群、为什么要使用Redis数据库[通俗易懂]

主从复制、读写分离、集群、为什么要使用Redis数据库[通俗易懂]一、什么是主从复制、读写分离、为什么要使用主从复制:是一种数据备份的方案。简单来说,是使用两个或两个以上相同的数据库,将一个数据库当做主数据库,而另一个数据库当做从数据库。在主数据库中进行相应操作时,从数据库记录下所有主数据库的操作,使其二者一模一样。读写分离:是一种让数据库更稳定的的使用数据库的方法。是在有从数据库的情况下使用,当主数据库进行对数据的增删改也就是写操作时,将查询的…

大家好,又见面了,我是你们的朋友全栈君。

一、什么是主从复制、读写分离、为什么要使用

主从复制:是一种数据备份的方案。

简单来说,是使用两个或两个以上相同的数据库,将一个数据库当做主数据库,而另一个数据库当做从数据库。主数据库中进行相应操作时,从数据库记录下所有主数据库的操作,使其二者一模一样。

读写分离:是一种让数据库更稳定的的使用数据库的方法。

是在有从数据库的情况下使用,当主数据库进行对数据的增删改也就是写操作时,将查询的任务交给从数据库

为什么要使用主从分离和读写操作呢?

主从复制:1、当主数据库出现问题时,可以当从数据库代替主数据库,可以避免数据的丢失。

     2、可以进行读写分离

读写分离:1、避免从数据库进行写操作而导致的主从数据库数据不一致的情况,因为当主从数据库数据不一致时,那么从数据库最主要的备份任务就没有意义了。 

        2、减轻主数据库的压力。因为进行写操作更耗时,所以如果不进行读写分离的话,写操作将会影响到读操作的效率。

二、什么是集群

如果说主从复制是各司其职的话,那么集群就是一群同样的个体做着同样的事情。在Redis中,数据的写入操作次数很大的情况下,只使用单独一个服务器来进行写入操作的话,效率不高,那么如果使用集群方案,利用多个Redis服务器来进行写操作,大量的数据,你写一点,我写一点,大家都分担一点,那么效率会高很多。就像一小块土地需要挖土,那么一台挖掘机就足够,但是遇上了一大片土地,虽然一台挖掘机也能够完成任务,但是需要很久很久,那么我现在再找个十台挖掘机一起挖土,那么效率就会高很多了。

集群模式的思想可以在多处使用。总之就是,一个个体完成不了或者说效率很低的场景下,都可以使用这种思想。
就如下面将要说到的哨兵,一个哨兵监视一个服务器集群肯定是不够的,那么就需要一个哨兵集群来监视。

三、什么是哨兵模式

是一种容灾方案。

哨兵:实则是一个在特殊模式下的Redis服务器,里面存储的是自己本身的信息,主服务器的信息,从服务器的信息。

用一个或者多个哨兵来监视主服务器(也就是进行写操作的服务器)是否在正常执行任务,一旦哨兵发现主服务器不可用时,就找到一个合适的从服务器成为主服务器。

四、为什么要用Redis数据库

Redis数据库是NOSQL数据库中以key-value存储模式下的一种数据库。

那么NOSQL又是什么数据库呢?非关系型数据库。

什么要使用Nosql? 
1) 当数据量的总大小一个机器放不下时。 
2) 数据索引一个机器的内存放不下时。 
3) 访问量(读写混合)一个实例放不下时。

在信息爆炸的今天,数据的存储,对数据的查询都是非常频繁且非常大量的。关系型数据库的就显得力不从心了,扩展性较差,查询简单条件数据的效率较低等缺点,无意是致命的。而NOSQL数据库中的数据之间并无关系,这一特点造就了NOSQL的易扩展性,读写性能高等优势。所以面对大量的数据读写,非关系型数据库相比较于关系型数据库有着巨大的优势。

那么Redis数据库为什么又在NOSQL中脱颖而出?

我认为是有以下几个原因,

1、Redis支持多种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。可以在大部分的场景中使用。

2、支持主从复制,读写分离。读写效率大大提升。

3、数据存储在内存中,可用来做缓存。需要持久化的数据就将其存入硬盘,不需要持久化的数据,可以进行短暂的存储,提高访问速度。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147134.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入理解mybatis原理(五) MyBatis缓存机制的设计与实现

    深入理解mybatis原理(五) MyBatis缓存机制的设计与实现本文主要讲解MyBatis非常棒的缓存机制的设计原理,给读者们介绍一下MyBatis的缓存机制的轮廓,然后会分别针对缓存机制中的方方面面展开讨论。MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存:     一级缓存是Session会话级别的缓存,位于表示一次数据库会话的SqlSession对象之中,又被称之为本地缓存。一级缓存是MyBatis内部实现的一个特性

    2022年5月11日
    38
  • Matlab中lsim函数使用

    Matlab中lsim函数使用lsim函数:lsim函数是针对线性时不变模型,给定任意输入,得到任意输出。lsim函数表示任意输入函数的响应,连续系统对任意输入函数的响应可以利用lsim函数求取。语法(常用):1.分子分母形式lsim(num,den,u,t)2.传递函数形式lsim(sys,u,t)3.状态空间形式lsim(A,B,C,D,u,t)其中,u为由给定输入序列构成的矩阵,它的每列对应一个输入,每行对应一个新的时间点,其行数与时间t的长度相等,其它的用法与step函数相同。…

    2022年7月17日
    140
  • 基于java springboot android安卓点餐外卖系统源码(毕设)「建议收藏」

    基于java springboot android安卓点餐外卖系统源码(毕设)「建议收藏」开发环境及工具:大等于jdk1.8,大于mysql5.5,idea(eclipse),AndroidStudio技术说明:springbootmybatisandroid代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。功能介绍:用户端:登录注册首页显示轮播图,菜品分类,根据分类展示菜品(可带推荐算法),点击入购物车,然后点击结算,计入下单界面,可选择自取和配送(配送需选择地址);也可以点击菜品进入详情,详情展示菜品评价,可以点击下单订单展示个人订单信息(包含取消,支付,完

    2022年6月19日
    31
  • 微商分销系统哪家好,要怎么做?

    微商分销系统哪家好,要怎么做?分销模式的本质是分享经济,wemall微商分销系统将传统商品高昂的推广费用让利给消费者,并抽取一定金额作为分销商的佣金。分销模式使消费者直接与商家沟通,增加用户粘性,促成品牌的口碑转化为流量,相比与零售,分销有着无可比拟的优势,这也使越来越多的微商分销系统涌现出来。微信封杀分…

    2022年5月17日
    35
  • 各国手机号码正则

    各国手机号码正则’ar-DZ’:/^(\+?213|0)(5|6|7)\d{8}$/,’ar-SY’:/^(!?(\+?963)|0)?9\d{8}$/,’ar-SA’:/^(!?(\+?966)|0)?5\d{8}$/,’en-US’:/^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/,’cs-CZ’:/^(\+?420)??[1-9][0-9]{2}?[0-9]{3}?[0-9]{3}$/,’de-DE’:/^(\+?4…

    2022年5月29日
    47
  • MQ消息队列详解、四大MQ的优缺点分析

    MQ消息队列详解、四大MQ的优缺点分析MQ消息队列详解近期有了想跳槽的打算,所以自己想巩固一下自己的技术,想了解一些面试比较容易加分的项,近期准备深入研究一下redis和mq这两样,这总体上都是为了解决服务器并发的原因,刚翻到了一篇有关于mq的,觉得写得特别好,特此记录一下,也算是为了加深自己的印象。首先从MQ容易面对的面试题切入一下为什么要使用MQ消息队列有什么优点和缺点kafka、ActiveMQ、RabbitMQ、R…

    2022年6月2日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号