大家好,又见面了,我是你们的朋友全栈君。
一、什么是主从复制、读写分离、为什么要使用
主从复制:是一种数据备份的方案。
简单来说,是使用两个或两个以上相同的数据库,将一个数据库当做主数据库,而另一个数据库当做从数据库。在主数据库中进行相应操作时,从数据库记录下所有主数据库的操作,使其二者一模一样。
读写分离:是一种让数据库更稳定的的使用数据库的方法。
是在有从数据库的情况下使用,当主数据库进行对数据的增删改也就是写操作时,将查询的任务交给从数据库。
为什么要使用主从分离和读写操作呢?
主从复制: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.cn/147134.html原文链接:https://javaforall.cn