当前位置: 首页 > news >正文

企业级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

相关文章:

  • SQL Server 八大排序算法详解
  • 【Linux网络与网络编程】03.UDP Socket编程
  • Qt6调试项目找不到Bluetooth Component蓝牙组件
  • 实例中调用带有命名控件的成员
  • 判断一个字符串中排除空格和换行以外字符运行不同的逻辑
  • 剑指Offer(数据结构与算法面试题精讲)C++版——day2
  • AIGC SD出图有缺陷有哪些方法可以解决?
  • nginx rewrite的相关功能
  • 算力100问☞第100问:算力竞争的关键领域?
  • 数据仓库建模-CIF方法中3NF建模的核心作用解析
  • “壹号土”和“壹号土猪”都是已注册商标!
  • MongoDB 核心机制解析
  • 深入解析力扣39.组合总和:回溯算法的妙用
  • --- 动态sql的使用 ---
  • 生成LoadX509KeyPair 需要的证书
  • <tauri><rust><GUI>基于rust和tauri,实现一个svg转png的工具
  • kettle从入门到精通 第九十四课 ETL之kettle MySQL Bulk Loader大批量高性能数据写入
  • FlutterWeb实战:02-加载体验优化
  • DPM(Defects Per Million,每百万缺陷数)和PPM(Parts Per Million,百万分之一)
  • php8属性注解使用教程
  • 用c 可以做网站吗/经济新闻最新消息财经
  • 石家庄网站制作工具/餐饮营销方案100例
  • 做高端品牌网站/seo是怎么优化
  • 网站开发运营人员职业前景/网络外贸推广
  • 网站建设胶州/app投放渠道有哪些
  • 用jsp加点mvc做网站怎么样/深圳十大教育培训机构排名