linux下redis的安装部署及单机多节点集群搭建过程

前言
redis是非关系型数据库,本质是一个基于内存的数据库,所有数据和结构都存储在内存中,所以redis所有的操作都非常高速。它支持数据的备份,即master-slave模式的数据备份,支持数据的持久化,可以将内存中的数据保存在磁盘中,具有两种持久化方式----RDB方式和AOF方式。具有客户端和服务端两部分,客户端和服务端可以部署在不同的机器上,他们直接通过自定义的协议交互,平时说的redis通常指的是服务端。端口号默认为6379,因为 6379 在手机按键上 MERZ 对应的号码,而据说 MERZ 取自意大利歌女 Alessia Merz 的名字

主要有多数据库和事务两个特性,默认支持16个数据库,客户端与Redis建立连接后会自动选择0号数据库;并且redis的事务和关系型的事务不一样,传统的数据库事务一组操作单元,要么全部成功,要么全都失败,而Redis在执行一个命令集合的时候,可能会出现集合的一些命令成功,一些命令失败。

Redis有五种数据类型,分别是String、List、Set、Hash和Sorted Set(zset)
String 可以是字符串、整数或浮点,统称为元素,是 Redis 最基本的数据类型
List是一个序列集合(有序),且每个结点都包好了一个元素 ,按照插入顺序排序
Set 各不相同(唯一)的元素,从集合中插入或删除元素,集合是通过哈希表实现的
Hash是带key-value 的散列组,其中Key是字符串,value是元素按照key进行增加删除
Sorted Set(zset) 是带分数的score-value有序集合,其中score为浮点,value为元素

应用场景有缓存、队列、数据存储、网站访问统计和数据过期处理等

一、redis安装
1、环境准备
yum -y install gcc
redis-4.0.9.tar.gz
CentOS 7.x
2、拷贝到Linux的/usr/local中,执行解压操作

tar -zxvf redis-4.0.9.tar.gz
mv  redis-4.0.9 redis   #改名

2、编译安装

cd redis
make          #编译
make install  #安装

4、拷贝配置文件,方便管理
在redis目录下创建bin和etc文件

mkdir etc  bin

找到redis.conf,将其复制移动到 新建的etc 下

    mv redis.conf /usr/local/redis/etc/
    cd /usr/local/redis/src  #进入src目录,继续拷贝以下文件
    mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /usr/local/redis/bin/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、启动redis
在/usr/local/redis/bin/目录下执行

./redis-server    #启动redis

linux下redis的安装部署及单机多节点集群搭建过程_第1张图片
这时redis已经成功启动了,但是因为是前台启动,我们不能做任何操作,关闭窗口,redis就关闭了

5、后台启动redis

vim /usr/local/redis/etc/redis.conf

将daemonize属性改为yes
linux下redis的安装部署及单机多节点集群搭建过程_第2张图片
然后再次进入usr/local/redis/bin目录启动redis

 cd /usr/lcoal/redis/bin
 ./redis-server /usr/local/redis/etc/redis.conf   #指明配置文件启动redis

在这里插入图片描述
6、启动客户端

redis-cli       #连接本地的redis服务

linux下redis的安装部署及单机多节点集群搭建过程_第3张图片
redis-cli -h host -p port -a password #客户端连接远程服务 指定主机IP和端口号,若有时出现中文乱码 在 redis-cli 后面加上 --raw就可避免
redis-cli shutdown #停止redis服务,当然也可以强行杀死进程,但是这样可能会造成持久化的数据丢失

二、ruby安装
1、环境准备
Ruby是一种纯粹的面向对象编程语言。
ruby-2.2.2.tar.gz
CentOS 7.x
2、拷贝到Linux的/usr/local中,执行解压操作

tar zxvf ruby-2.2.2.tar.gz 
mv ruby-2.2.2 ruby  #改名

3、编译安装

cd ruby   #进入ruby安装目录
./configure 
make 
make install
export PATH=/usr/local/ruby/bin:$PATH   #环境变量设置

问题:ERROR: Loading command: install (LoadError) cannot load such file – zlib ERROR: While executing gem … (NoMethodError) undefined method `invoke_with_build_args’ for nil:NilClass
解决方法: yum -y install zlib zlib-devel
问题:ERROR: Loading command: install (LoadError) cannot load such file – openssl
解决方法:yum -y install openssl openssl-devel

4、检测是否安装好

ruby -v

在这里插入图片描述
三、rubygems安装
1、环境准备
RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具
rubygems-3.0.6.tgz
CentOS7.x
2、拷贝到Linux的/usr/local中,执行解压操作

tar -zxvf rubygems-3.0.6.tgz

3、进入解压目录,执行命令

cd rubygems-3.0.6
ruby setup.rb #若提示ruby命令没找到 但是ruby已经安装了 可能是因为没添加到环境变量

linux下redis的安装部署及单机多节点集群搭建过程_第4张图片
四、redis-3.2.1.gem安装(redis和ruby的 接口程序)
1、将软件上传到/usr/local目录下
2、执行命令

gem install -l redis-3.2.1.gem

linux下redis的安装部署及单机多节点集群搭建过程_第5张图片
五、redis单机多节点集群搭建
1、创建节点
我们先在根目录下创建一个redis_cluster目录,因为要搭建三主三从总共六个节点,在redis_cluster目录下再创建六个节点目录

mkdir /redis_cluster
cd /redis_cluster
mkdir redis_7001 redis_7002 redis_7003 redis_7004 redis_7005 redis_7006    #创建节点目录

在这里插入图片描述
2、修改配置
分别复制redis安装目录下的redis.conf配置文件到/redis_cluster下的六个节点目录中,如上图
以redis_7001为例

cp /usr/local/redis/etc/redis.conf   /redis_cluster/redis_7001/

按照类似操作依次复制到redis_7002-7006节点目录当中
接下来要分别修改这六个节点的配置文件

以redis_7001为例:

port 7001  //六个节点配置文件端口分别是7001-7006
daemonize yes        //redis后台运行
pidfile /var/run/redis_7001.pid   //pidfile文件对应7001-7006
cluster-enabled yes   //开启集群
cluster-config-file nodes_7001.conf  //保存节点配置,自动创建,自动更新对应7001-7006
cluster-node-timeout 5000    //集群超时时间,节点超过这个时间没反应就断定是宕机
appendonly yes   //存储方式,aof,将写操作记录保存到日志中

注意:根据不同的节点目录按相应要求修改即可,上述操作的要去掉前面的# 否则被注释,该行不起作用

3、启动节点的redis
为方便启动,可以写一个启动脚本,以后每次启动执行脚本即可
脚本内容如下:

#!/bin/bash
#redis server start

cd /usr/local/redis/bin/
./redis-server /redis_cluster/redis_7001/redis.conf
./redis-server /redis_cluster/redis_7002/redis.conf
./redis-server /redis_cluster/redis_7003/redis.conf
./redis-server /redis_cluster/redis_7004/redis.conf
./redis-server /redis_cluster/redis_7005/redis.conf
./redis-server /redis_cluster/redis_7006/redis.conf

执行脚本,启动6个节点

sh openredis.sh  #openredis.sh是我的脚本名

查看redis是否启动

ps aux | grep redis

在这里插入图片描述
4、创建集群
复制redis的src目录下的redis-trib.rb文件到redis-cluster目录

cp  /usr/local/redis/src/redis-trib.rb   /redis_cluster/
cd /redis_cluster  
./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006    #--replicas 1 表示为每个主节点创建一个从节点

5、验证

cd /usr/local/redis/bin    #即redis-cli所在的目录
./redis-cli -c -p 7001 #-c 代表集群模式 -p 表示端口号-h表示主机地址

linux下redis的安装部署及单机多节点集群搭建过程_第6张图片
6、一些简单操作
删除从节点

./redis-trib.rb del-node 127.0.0.1:7001 97093dbf1f03d773400423feed29c24c8995284b

127.0.0.1:7001 从节点;97093dbf1f03d773400423feed29c24c8995284b 从节点ID

添加从节点

./redis-trib.rb add-node --slave --master-id be76239d591b88a5dd0c7fa686dc1c1792abdda4 127.0.0.1:7004 127.0.0.1:7005

–slave 表示添加的是从节点
-master-id be76239d591b88a5dd0c7fa686dc1c1792abdda4 主节点的node-id
127.0.0.1:7004 主节点

查看集群节点

cluster nodes

查看key对应的slot

cluster keyslot key

查看slot和节点的对应关系

cluster slots

查看集群信息

cluster info

(注:部分资料来源于网络,如有侵权,请联系作者)

你可能感兴趣的:(linux下redis的安装部署及单机多节点集群搭建过程)