大数据系列——Redis部署及应用

Redis有四种部署方式,分别为单机模式、主备模式、哨兵模式、集群模式。

其中单机模式比较简单,容量、处理能力有限,没有高可用;主备模式和哨兵模式本质和单机模式一样,只是主备模式保证数据高可用,哨兵模式保证数据和服务的高可用。

集群模式是将数据分片到不同的服务器,克服了单机的容量、性能有限问题,可以支持海量数据应用。

下面以生产环境一般用的哨兵模式、集群方式部署为例分别做说明,本样例是在3台虚拟机下部署的,每个节点安装Centos7核心版(不带GUI)。

3台机器分别规划如下:

hdp1:10.10.10.110

hdp2:10.10.10.112

hdp3:10.10.10.113

下面从如下几个方面介绍下其部署及应用:

相关配置

安装

固定配置

分发程序

修改配置

启动

查看状态

基本操作

相关配置

挂载windows目录、 IP配置、hosts名称配置、关闭防火墙、SSH配置, 需要3台电脑网络互通且能相互SSH登录,jdk安装等

具体操作参见:

Linux系列——挂载Windows虚拟文件夹到Linux系统

Linux系列——配置SSH免密登录

Linux系列——常规基础操作

安装

先在其中任意一台上面安装。

1、下载Redis,例如:redis-6.2.0.tar.gz

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

2、解压到目标目录,例如:/usr/local/redis

     $ cp /mnt/hdfs/vf/redis-6.2.0.tar.gz  /usr/proc/redis 从挂载目录将安装文件拷贝到目标路径

     $ cd /usr/proc/redis  这里切换到zk安装目录(每台机器都要新建该目录,配好一台后后面两台直接用scp命令分发,具体路径可以自定义,推荐放在/usr下)

     $ tar  -zxvf redis-6.2.0.tar.gz  (解压后记着删除压缩文件)

3、编译

     $ cd /usr/local/redis/redis-6.2.0

     $ make    

     若编译报错,按提示可能需要安装gcc编译器

      $ yum install gcc-c++ -y   #安装gcc

      $ make dist clean              #重新来

      $ make                        

4、编译成功,执行安装    

     $ mkdir /usr/local/redis/redis62   #新建安装目录

     $ make  install  PREFIX=/usr/local/redis/redis62    #安装到指定目录中

固定配置

$ cp /usr/local/redis/redis-6.2.0/redis.conf 

/usr/local/redis/redis62  #copy配置文件到安装目录

$ mkdir /usr/local/redis/redis62/data  #新建数据目录

$ mkdir /usr/local/redis/redis62/pid   #新建PID目录

$ mkdir /usr/local/redis/redis62/log   #新建LOG目录

修改固定配置文件内容:

# 启动后台运行

daemonize yes

# 存放进程id

pidfile /usr/local/redis/redis62/pid/pidfile.pid

# 日志文件

logfile /usr/local/redis/redis62/log/logfile.pid

# 数据目录

dir /usr/local/redis/redis62/data/

# 是否开启集群

cluster-enabled yes

# 指定是否在每次更新操作后进行日志记录

appendonly yes

分发程序

$ mkdir /usr/local/redis/redis62  #新建该目录,另外两台都新建

#分发到hdp2

Scp  -r  /usr/local/redis/redis62

root@hdp2:/usr/local/redis/redis62

#分发到hdp3

Scp  -r  /usr/local/redis/redis62

root@hdp3:/usr/local/redis/redis62

修改配置

分别在3台机器上,调整如下配置:

# 指定 只能以10.10.10.110这个IP访问, 依次10.10.10.112, # 10.10.10.113

bind 10.10.10.110

# 指定不同监听端口,采用ip + 2两位流水号

port 11000

哨兵模式搭建

哨兵模式主要是采用主从复制 + 哨兵,解决了Redis的高可用HA实现。哨兵选举也是需要奇数个节点,所以至少需要3个节点。

1、用hdp1做主节点,分别修改hdp2hdp3两台服务器的redis.conf配置,配置从服务

# slaveof 主节点IP  端口  启用后就将当前服务设定为从服务并指定主服务

slaveof 10.10.10.110 11000

# 启用从服务只读

slave-read-only yes

2、拷贝哨兵配置文件到安装目录(3台都做)

$ cp /usr/local/redis/redis-6.2.0/sentinel.conf 

   /usr/local/redis/redis62  #copy配置文件到安装目录

3、修改哨兵配置文件sentinel.conf(3台都做)

# 指定不同监听端口

port 21000

# 存放进程id

pidfile /usr/local/redis/redis62/pid/pidfile_sentinel.pid

# 日志文件

logfile /usr/local/redis/redis62/log/logfile_sentinel.pid

# 数据目录

dir /usr/local/redis/redis62/data_sentinel/

# 数据库文件名

dbfilename dump110_sentinel.rdb

# 监控主节点,后面的2表示有2个哨兵确认,就认为主节点下线了

sentinel monitor mymaster 10.10.10.110 11000 2

4、启动服务(3台都做)

分别启动不同的redis服务和哨兵服务,先分别启动redis服务,然后再分别启动sentinel服务

$ cd /usr/local/redis/redis62/bin  #切换到服务bin目录

$ ./redis-server ./redis.conf      #回车,启动redis服务

$ cd /usr/local/redis/redis62/bin  #切换到服务bin目录

$ ./redis-sentinel ./sentinel.conf #回车,启动sentinel服务

5、查看启动状态

1)、查看redis服务(3台都做)

$ ps -aux | grep redis  #查看redis服务

2)、查看sentinel服务

redis-cli -c -h 10.10.10.110 -p 21000 info sentinel

集群模式搭建

集群模式引入了分布式概念,为了满足大数据量的要求,需要将数据分散到不同的机器上,Redis保证高可用是基于主从模式,所以为了适应选举Raft算法, 生产上至少需要3个主节点、3个从节点,且都部署在不同的节点上

(本环境由于节点有限,所以只有3个节点,每台部署一主一从服务)。

PS: 同一台服务器上的cluster-config-filedbfilename名称、IP端口都不能一致。

1、部署服务(3台都做)

$ mkdir /usr/local/redis/redis62bak  #新建该目录,另外两台都新建,用于部署新服务

2、拷贝本机已安装的服务到新服务目录(3台都做)

$ cp -r /usr/local/redis/redis62 /usr/local/redis/redis62bak

3、修改新服务配置(3台都做)

# 指定不同监听端口

port 11001

# 存放进程id

pidfile /usr/local/redis/redis62bak/pid/pidfile.pid

# 日志文件

logfile /usr/local/redis/redis62bak/log/logfile.pid

# 数据目录

dir /usr/local/redis/redis62bak/data/

# 数据库文件名

dbfilename dump110.rdb

# 集群节点配置文件,这个文件是不能手动编辑的。确保每一个集群节点的配置文件不通

cluster-config-file nodes110.conf

4、启动服务(3台都做)

分别启动不同的服务,每台需要单独启动 redis62 和 redis62bak 的服务(可以设置自动启动,具体方式自行查找,可以在claster_start.sh或系统启动服务里加入启动指令)

$ cd /usr/local/redis/redis62/bin  #切换到服务bin目录

$ ./redis-server ./redis.conf      #回车,启动服务

$ cd /usr/local/redis/redis62bak/bin  #切换到服务bin目录

$ ./redis-server ./redis.conf      #回车,启动服务

5、查看启动状态(3台都做)

$ ps -aux | grep redis

6、创建集群

预期3台机器上的6个Redis服务都启动正常,使用redis-cli创建集群,可以在其中任意一个redis服务器中执行以下指令创建集群。

$ redis-cli --cluster create 10.10.10.110:11000 10.10.10.112:11200 10.10.10.113:11300 10.10.10.110:11001 10.10.10.112:11201 10.10.10.113:11301 --cluster-replicas 1

上面指令中--cluster-replicas 1 参数表示每个主服务器都有一个从服务器,这里则代表3主3从。

通过该方式创建的集群,带有从节点的机器不能够自己手动指定主节点,由集群自己来分配主节点,集群会尽量把主从服务器分配在不同的机器上。

1)创建过程:

# redis-cli --cluster create 10.10.10.110:11000 10.10.10.112:11200 10.10.10.113:11300 10.10.10.110:11001 10.10.10.112:11201 10.10.10.113:11301 --cluster-replicas 1

大数据系列——Redis部署及应用_第1张图片

2)查看集群状态

# redis-cli -c -h 10.10.10.110 -p 11000 cluster info

大数据系列——Redis部署及应用_第2张图片

3)查看集群节点

# redis-cli -c -h 10.10.10.110 -p 11000 cluster nodes

大数据系列——Redis部署及应用_第3张图片

基本操作

chkconfig --list #查看自启动服务

ps -aux | grep redis #查看启动服务

redis-cli -h 127.0.0.1 -p 6379  #用cli连接Redis

killall -9 redis-server #手动结束Redis

chkconfig --add redis #增加Redis服务

chkconfig redis on   #开启开机启动

chkconfig redis off  #关闭开机启动

service redis start  #打开redis命令

service redis stop   #关闭redis命令

service redis restart #重启redis命令

你可能感兴趣的:(数字化转型,big,data,redis,linux)