企业级NoSql数据库Redis集群

发布于:2025-04-02 ⋅ 阅读:(23) ⋅ 点赞:(0)

一。关系型数据库和 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


网站公告

今日签到

点亮在社区的每一天
去签到