Centos7下Redis集群搭建
一、Centos7下Redis集群搭建
前言
随着互联网发展,数据量越来越大,对性能要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且扩展困难。这样既有单机单库瓶颈,却又扩展困难,自然无法满足日益增长的海量数据存储及其性能要求,所以才会出现了各种不同的 NoSQL 产品,NoSQL 根本性的优势在于在云计算时代,简单、易于大规模分布式扩展,并且读写性能非常高。下面分析下两者的特点,及优缺点:
关系型数据库 | NoSQL 数据库 | |
---|---|---|
特点 | -数据关系模型基于关系模型,结构化存储,完整性约束。 -基于二维表及其之间的联系,需要连接、并、交、差、除等数据操作。 -采用结构化的查询语言(SQL)做数据读写。 -操作需要数据的一致性,需要事务甚至是强一致性。 | -非结构化的存储。 -基于多维关系模型。 -具有特有的使用场景。 |
优点 | -保持数据的一致性(事务处理) -可以进行 join 等复杂查询。 -通用化,技术成熟。 | -高并发,大数据下读写能力较强。 -基本支持分布式,易于扩展,可伸缩。 -简单,弱结构化存储。 |
缺点 | -数据读写必须经过 sql 解析,大量数据、高并发下读写性能不足。 -对数据做读写,或修改数据结构时需要加锁,影响并发操作。 -无法适应非结构化存储。 -扩展困难。 -昂贵、复杂。 | -join 等复杂操作能力较弱。 -事务支持较弱。 -通用性差。 -无完整约束复杂业务场景支持较差。 |
准备环境
redis有三种模式的部署:主从、哨兵、集群。本例以三个节点讲解Redis
主从复制:
1、主从复制定义:
- Master可以拥有多个slave;
- 多个slave可以链接同一个master外,还可以连接到其他的slave;
- 主从复制不会阻塞master,在同步数据时master可以继续处理client请求;
- 提供系统的伸缩性;
2、主从复制过程:
- slave与master建立连接,发送sync同步命令;
- master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存;
- 后台完成保存后,就将文件发送给slave;
- slave将此文件保存到硬盘上;
服务器IP | 别名 | 主从角色 |
---|---|---|
192.168.133.61 | zk1 | master |
192.168.133.62 | zk2 | slave |
192.168.133.63 | zk3 | slave |
开始安装
以下步骤集群各机器均需操作,保持一致。
1)下载所需要的redis
安装包redis-3.2.11.tar.gz
redis-3.2.11.tar.gz
2)将redis-3.2.11.tar.gz
上传
3)安装gcc
yum -y install gcc
4)解压redis
包
tar -zxvf /usr/local/software/redis-3.2.11.tar.gz -C /usr/local/
5)进入解压后的redis
cd /usr/local/redis-3.2.11/
6)编译
make
7)进入src目录安装
cd src
8)安装
make install
9)建立两个文件夹存放redis
命令和配置文件
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/bin
10)将redis-3.2.11
下的redis.conf
复制到/usr/local/redis/etc
下
cp /usr/local/redis-3.2.11/redis.conf /usr/local/redis/etc/
11)将redis-3.2.11
里src
目录下的可执行文件移动到/usr/local/redis/bin
cd /usr/local/redis-3.2.11/src/
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /usr/local/redis/bin
12)修改配置文件redis.conf
bind 127.0.0.1 变更为 bind 0.0.0.0(仅master节点修改)
daemonize no 变更为 daemonize yes
dir ./ 变更为 /usr/local/redis/etc
增加一行:slaveof 192.168.133.61 6379(仅slave节点增加)
13)启动redis
服务(为保主从正常通信,此处防火墙需在关闭状态)
先启动master
节点,其次启动其余两个slave
节点
/usr/local/redis/bin/redis.server /usr/local/redis/etc/redis.conf
14)进入redis
客户端并操作
通过操作可以得知:主节点写入的数据,从节点可以同步读取;且主节点支持读写,从节点只能读,若从节点写入则提示错误:(error) READONLY You can't write against a read only slave.
/usr/local/redis/bin/redis-cli
15)redis
相关命令
ps -el | grep redis #查看redis进程状态
/usr/local/redis/bin/redis-cli shutdown #停止服务
quit #退出客户端
还没有评论,来说两句吧...