企业级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 root@192.168.142.135:/root:复制解压的环境

rsync -al * root@192.168.142.135:/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

相关推荐
周胡杰16 分钟前
鸿蒙arkts使用关系型数据库,使用DB Browser for SQLite连接和查看数据库数据?使用TaskPool进行频繁数据库操作
前端·数据库·华为·harmonyos·鸿蒙·鸿蒙系统
wkj00120 分钟前
navicate如何设置数据库引擎
数据库·mysql
赵渝强老师23 分钟前
【赵渝强老师】Oracle RMAN的目录数据库
数据库·oracle
暖暖木头24 分钟前
Oracle注释详解
数据库·oracle
御控工业物联网41 分钟前
御控网关如何实现MQTT、MODBUS、OPCUA、SQL、HTTP之间协议转换
数据库·sql·http
夜斗小神社2 小时前
【黑马点评】(二)缓存
缓存
GJCTYU2 小时前
spring中@Transactional注解和事务的实战理解附代码
数据库·spring boot·后端·spring·oracle·mybatis
MicroTech20252 小时前
微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
数据库·科技·算法
Code季风2 小时前
SQL关键字快速入门:CASE 实现条件逻辑
javascript·数据库·sql
weixin_478689762 小时前
操作系统【2】【内存管理】【虚拟内存】【参考小林code】
数据库·nosql