企业级NoSql数据库Redis集群

一。关系型数据库和 NoSQL数据库
1.1 数据库主要分为两大类:关系型数据库与NoSQL数据库
关系型数据库:是++建立在关系模型基础上的数据库++ ,其借助于集合代数等数学概念和方法来处理数据库中的数据主流的 MySQL、 Oracle、MS SQL Server和 DB2都属于这类传统数据库。
NoSQL数据库:全称为Not OnlySQL,意思就是++适用关系型数据库的时候就使用关系型数据++ 库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。主要分为临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase),每种NoSQL都有其特有的使用场景及优点。
1.2 为什么还要用NoSQL 数据库呢?

主要是由于随着互联网发展,数据量越来越大,对性能要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且扩展困难。这样既有单机单库瓶颈,却又扩展困难,自然无法满足日益增长的海量数据存储及其性能要求,所以才会出现了各种不同的 NoSQL产品,NoSQL根本性的优势在于在云计算时代,简单、易于大规模分布式扩展,并且读写性能非常高

1.3两者之间的区别:

二。Redis特性和应用场景

1.速度快,10w,QPS,基于内存,C语言实现

2.单线程(纯存储,非阻塞,避免线程切换和静态消耗)

3.持久化

4.支持多种数据结构

5.支持多种编程语言

6.功能丰富,支持Lua脚本,发布订阅,事务,piipeline等功能

7.简单:代码短小精悍,单线程开发容易,不依赖外部库,使用简单

8.主从复制

9.支持高可用和分布式

三。Redis的源码安装

官方下载地址:http://download.redis.io/releases/

1.解压和安装插件

2.make && make install(下载和编译Redis)

3.进入脚本,执行脚本(有错误)

4.进行编译服务有错,vim install_server.sh进行内容注释

5.最后再运行脚本,则启动服务

6.vim /etc/redis/6379.conf :修改网络为所有,关闭密码

7.重新启动redis:启动脚本在/etc/init.d/redis_6379

8.使用Redis:redis-cli

注释:其他用户的拷贝redis

scp -r redis-7.4.0 [email protected]:/root:复制解压的环境

rsync -al * [email protected]:/usr/local/bin:复制环境

四。配置Redis主从同步

主从同步原理

注释:BGSAVE:作用是把 vi /var/lib/redis/6379/dump.rdb (快照)发送给slave,slave先把本身的内容清空(flushall),再将dump.rdb的数据进行从新写入(通过replicationfeedslave函数一条一条地进行写入)

配置操作

1.修改master节点的配置文件:

vi /etc/redis/6379.conf

2.修改salve节点:

vi /etc/redis/6379.conf

/etc/init.d/redis_6379 restart

systemctl stop firewalld

setenforce 0

测试是否成功:info replication看master是否存在一个slave

五。Redis哨兵:

配置过程:

1.进行备份文件

2.vi /etc/redis/sentinel.conf:编辑文件

设置时间为10s

选举出新的master后其他slave会进行同步,1表示一个一个同步,2则表示两个两个同步,设置的越多速度越快,但是不可用节点越多

表示升级成为master最多不能超过3分组

3.拷贝文件给其他主机,并且进行备份数据(全部备份,哨兵会更改数据)

4.启动哨兵

vi /etc/redis/sentinel.conf:进入此文件会多一条数据进行添加

5.进行测试:

master进行下线,选举新的master,vi /etc/redis/sentinel.conf内容会被更改

6.问题:当master的一段网断了一段时间(master依旧认为自己是master),但是其他slave会进行重新选举master,所以在网端期间,写入master的数据会被全部刷掉,去匹配新的master

临时解决方法:++当master的slave数量最少为2个的时候才能进行写入数据,防止断网情况++

永久更改方法:vi /etc/redis/6379.conf

相关推荐
LjQ20404 分钟前
网络爬虫一课一得
开发语言·数据库·python·网络爬虫
烙印6018 分钟前
MyBatis原理剖析(二)
java·数据库·mybatis
RestCloud10 分钟前
如何通过ETLCloud实现跨系统数据同步?
数据库·数据仓库·mysql·etl·数据处理·数据同步·集成平台
你是狒狒吗11 分钟前
TM中,return new TransactionManagerImpl(raf, fc);为什么返回是new了一个新的实例
java·开发语言·数据库
懒羊羊大王呀13 分钟前
Ubuntu20.04中 Redis 的安装和配置
linux·redis
Channing Lewis1 小时前
sql server如何创建表导入excel的数据
数据库·oracle·excel
秃头摸鱼侠1 小时前
MySQL安装与配置
数据库·mysql·adb
UGOTNOSHOT1 小时前
每日八股文6.3
数据库·sql
行云流水行云流水2 小时前
数据库、数据仓库、数据中台、数据湖相关概念
数据库·数据仓库
John Song2 小时前
Redis 集群批量删除key报错 CROSSSLOT Keys in request don‘t hash to the same slot
数据库·redis·哈希算法