009Redis单机及集群的搭建

一、 Redis 介绍

1 Redis 简介

Remote Dictionary Server(Redis)是一个开源的使用 ANSI C 语言编写、支持网络、可 基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

2 Redis 的特点

2.1优点:

  1. 支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash 表)、set(集合)、 zset(排序 set)、hyperloglog(基数估算)
  2. 支持持久化操作,可以进行 aof 及 rdb 数据持久化到磁盘,从而进行数据备份或数 据恢复等操作,较好的防止数据丢失的手段。
  3. 支持通过 Replication 进行数据复制,通过 master-slave 机制,可以实时进行数据的 同步复制,支持多级复制和增量复制,master-slave 机制是 Redis 进行 HA 的重要手段。
  4. 单进程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。

二、 安装 Redis 单机版

第一步 需要在 linux 系统中安装 gcc

命令:yum install -y gcc-c++
在这里插入图片描述

第二步 需要将下载好的 redis 压缩包添加到 linux 服务器中

版本:redis-3.0.6.tar.gz
在这里插入图片描述
redis 的版本:副版本号奇数版本号是测试版,不建议在生产环境中使用。
偶数版本时稳定版建议在生产环境中使用。
3.0.6 版本更新比较大。集成了集群技术

第三步 解压压缩包

命令:tar -zxvf redis…
在这里插入图片描述在这里插入图片描述

第四步 编译 redis

命令:进入 redis 的解压完毕的根目录下 执行命令:make
在这里插入图片描述在这里插入图片描述

第五步 安装 redis

命 令 : 进 入 redis 的 解 压 完 毕 的 根 目 录 下 ,
执 行 命 令 : make install PREFIX=/usr/local/redis
在这里插入图片描述

第六步:启动 redis

1,前端启动

在 bin 目录下执行命令: ./redis-server (ctrl+c)
在这里插入图片描述
在这里插入图片描述
退出 redis
在这里插入图片描述

2.后端启动

(1)先将 redis 解压目录下的 redis.conf 文件拷贝到 安装好的 redis 的 bin 目录下
命令:cp redis.conf /usr/local/redis/bin
在这里插入图片描述在这里插入图片描述
(2)修改拷贝过来的 redis.conf 配置文件
命令:vi redis.conf
将 daemonize no 改为 yes
:set nu 显示行号
在这里插入图片描述
(3)启动 redis
在 bin 目录下执行命令:./redis-server redis.conf
在这里插入图片描述
(4)查看 redis 启动是否成功
输入命令:ps aux|grep redis
在这里插入图片描述
(5) 关闭 redis 的命令
./redis-cli shutdown

第七步:测试 redis 在 bin 目录下启动 redis 自带的客户端 ./redis-cli
常见 redis 命令:
ping—>pong 集群搭建详看:
在这里插入图片描述在这里插入图片描述

三、 在单机基础安装 Redis 集群版

3.1需求:

搭建一个 Redis 的最小集群,使用伪集群方式。 Redis 中最小的集群三对主从。
在 192.168.31.6 中安装 6 个 redis 实例。
如果使用已经使用过的单机版创建集群时,需要删除 dump.rdb 与 apeendonly.aof 文 件。
6 个 redis 实例的端口分配:8001、8002、8003、8004、8005、8006

3.2、集群步骤:

redis 集群时需要使用一个 ruby 的脚本来完成集群。

第一步、 安装 ruby 环境

命令: yum install ruby
在这里插入图片描述在这里插入图片描述

第二步、 安装 ruby 的包管理器

命令:yum install rubygems
在这里插入图片描述在这里插入图片描述

第三步、 进入到 redis 的安装目录下的 src 目录下找到 redis-trib.rb 这个文件 这是集群 时需要的脚本

在这里插入图片描述

第四步 这个脚本的执行需要依赖于一些其他的 ruby 包 所以我们还要下载一个 redis-3.0.0.gem

将这个文件上传到 linux 服务器中
在这里插入图片描述

第五步 安装这个 ruby 包

命令:gem install redis-3.0.0.gem
在这里插入图片描述在这里插入图片描述

第六步 先启动 redis 的 6 个实例

先在 local 目录下创建一个目录名称为:redis-cluster
命令:mkdir redis-cluster
在这里插入图片描述
/usr/local/redis/bin
在这里插入图片描述

第七步 修改 redis.conf 配置文件

命令:vi redis.conf
在这里插入图片描述

(1)修改端口:默认的为 6379 将六个 redis 实例的端口改成从 8001-8006 在配置文件 的 port 属性中。
:set nu
在这里插入图片描述
此处默认,不用更改,检查一遍
在这里插入图片描述
在这里插入图片描述
(2)修改开启集群 在配置文件中搜索 cluster 找到后 将默认为注释的 cluster-enabled yes 去掉注释
在这里插入图片描述
(3) cp bin/ …/redis-cluster/redis01 -r
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第八步 将这个 redis01 拷贝 5 份到当前这个目录下

在这里插入图片描述
命令:
cp redis01/ redis02 ‐r
cp redis01/ redis03 ‐r
cp redis01/ redis04 ‐r
cp redis01/ redis05 ‐r
cp redis01/ redis06 ‐r

第九步 修改拷贝的这些 redis 的port端口

命令:
[root@localhost redis-cluster]# vi redis02/redis.conf [root@localhost redis-cluster]# vi redis03/redis.conf [root@localhost redis-cluster]# vi redis04/redis.conf [root@localhost redis-cluster]# vi redis05/redis.conf [root@localhost redis-cluster]# vi redis06/redis.conf

第十步 把创建集群的 ruby 脚本复制到 redis-cluster 中

在这里插入图片描述
命令:[root@localhost src]# cp *.rb /usr/local/redis-cluster/
在这里插入图片描述

第十一步 创建一个能够批量启动的脚本程序

在这里插入图片描述
命令:vi startall.sh

第十二步 在脚本文件中添加命令

cd redis01
/redis‐server redis.conf
cd ..
cd redis02
./redis‐server redis.conf
cd ..
cd redis03
./redis‐server redis.conf
cd ..
cd redis04
./redis‐server redis.conf
cd ..
cd redis05
./redis‐server redis.conf
cd ..
cd redis06
./redis‐server redis.conf
cd .. 

第十三步 将批量启动脚本设置为可执行权限

命令:chmod +x startall.sh

第十五步 执行这个批量启动的脚本

在这里插入图片描述
命令:
[root@localhost redis-cluster]# ./startall.sh

第十六步 查看 redis 是否启动成功

命令:ps aux|grep redis
在这里插入图片描述

第十七步 创建集群

命令:1 ./redis‐trib.rb create ‐‐replicas 1 192.168.31.7:8001 192.168.31.7:8002 192.168.31.7:8003 192.168.31.7:8004 192.168.31.7:8005 192.168.31.7:8006
在这里插入图片描述在这里插入图片描述

06 控制台会显示如下信息 输入 yes

>>> Creating clusterConnecting to node 192.168.10.128:7001: OK Connecting to node 192.168.10.128:7002: OK Connecting to node 192.168.10.128:7003: OK
Connecting to node 192.168.10.128:7004: OK Connecting to node 192.168.10.128:7005: OK Connecting to node 192.168.10.128:7006: OK >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.10.128:7001 192.168.10.128:7002 192.168.10.128:7003 Adding replica 192.168.10.128:7004 to 192.168.10.128:7001 Adding replica 192.168.10.128:7005 to 192.168.10.128:7002 Adding replica 192.168.10.128:7006 to 192.168.10.128:7003 M: 8cf30cb6141b5d5db1fce2c8bdabe32666bbb1e7 192.168.10.128:7001 slots:0-5460 (5461 slots) master M: e8038d0965377ff0793911a10984174b57ddbaaf 192.168.10.128:7002 slots:5461-10922 (5462 slots) master M: be58583284fd2f26f03f2fce6c4e38de240eb841 192.168.10.128:7003 slots:10923-16383 (5461 slots) master S: e66b85a7e72913f1ca4657600a0113d2cb0ece8e 192.168.10.128:7004 replicates 8cf30cb6141b5d5db1fce2c8bdabe32666bbb1e7 S: 9f1897cb9c570487685c467b7b4b53f4c0c9f556 192.168.10.128:7005 replicates e8038d0965377ff0793911a10984174b57ddbaaf S: 1966b2674ce141da372438a29e9e84bfad266da3 192.168.10.128:7006 replicates be58583284fd2f26f03f2fce6c4e38de240eb841 Can I set the above configuration? (type 'yes' to accept): 

如果控制台输出如下信息表集群成功

>>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join....... >>> Performing Cluster Check (using node 192.168.10.128:7001) M: 8cf30cb6141b5d5db1fce2c8bdabe32666bbb1e7 192.168.10.128:7001 slots:0-5460 (5461 slots) master M: e8038d0965377ff0793911a10984174b57ddbaaf 192.168.10.128:7002 slots:5461-10922 (5462 slots) master M: be58583284fd2f26f03f2fce6c4e38de240eb841 192.168.10.128:7003
slots:10923-16383 (5461 slots) master M: e66b85a7e72913f1ca4657600a0113d2cb0ece8e 192.168.10.128:7004 slots: (0 slots) master replicates 8cf30cb6141b5d5db1fce2c8bdabe32666bbb1e7M: 9f1897cb9c570487685c467b7b4b53f4c0c9f556 192.168.10.128:7005 slots: (0 slots) master replicates e8038d0965377ff0793911a10984174b57ddbaaf M: 1966b2674ce141da372438a29e9e84bfad266da3 192.168.10.128:7006 slots: (0 slots) master replicates be58583284fd2f26f03f2fce6c4e38de240eb841 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 

第十八步:集群创建成功后每个节点中会生成nodes.conf:这个配置文件,里面记录了集群 的详细信息:
在这里插入图片描述
在这里插入图片描述只要有nodes.conf这个配置文件那么在下次启动集群的时候,就不需要再创建集群了,只 需要把每个节点启动起来就可以了,只需要执行
命令:
[root@localhost redis-cluster]# ./startall.sh
测试 Redis 集群
测试 Redis 集群:可以连接集群中的任意一个节点进行测试 注意一定要有-c 参数,否 则能连上,但是无法操作 redis 集群
在这里插入图片描述
命令:
[root@localhost redis-cluster]# ./redis01/redis-cli -h 192.168.31.7 -p 8001 -c
在这里插入图片描述
关闭 Redis 集群
命令:bin/redis-cli -p 8001 shutdown 也可以编写一个批量关闭的脚本
在这里插入图片描述在这里插入图片描述
命令:vi shutdownall.sh

redis01/redis-cli -h 192.168.31.7 -p 8001 shutdown redis01/redis-cli -h 192.168.31.7 -p 8002 shutdown redis01/redis-cli -h 192.168.31.7 -p 8003 shutdown redis01/redis-cli -h 192.168.31.7 -p 8004 shutdown redis01/redis-cli -h 192.168.31.7 -p 8005 shutdown redis01/redis-cli -h 192.168.31.7 -p 8006 shutdown 

执行权限: 1 chmod +x shutdownall.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值