大家好,欢迎来到IT知识分享网。
1.需求描述
如图:
1、搭建Redis5.0集群,要求三主三从,记录下安装步骤;
2、能够添加一主一从(Master4和Slaver4),记录下安装步骤;
3、能够通过JedisCluster向RedisCluster添加数据和取出数据。
2.单机版搭建步骤
2.1 安装c语言所需环境
yum install -y gcc-c++yum install -y wget
IT知识分享网
2.2 下载redis-5.0.4并进行解压,编译,安装
IT知识分享网## 编译
cd /usr/local
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar -zxf redis-5.0.4.tar.gz
cd redis-5.0.4/src
make
## 安装,后续直接安装即可,用现成编译好的包
mkdir /usr/redis -p
make install PREFIX=/usr/redis
2.3 配置redis,关闭保护模式and后台启动
cd /usr/local
cp redis-5.0.4/redis.conf /usr/redis/bin/
vi usr/redis/bin/redis.conf
# 将`daemonize`由`no`改为`yes`
daemonize yes
# 默认绑定的是回环地址,默认不能被其他机器访问
# bind 127.0.0.1
# 是否开启保护模式,由yes该为no
protected-mode no
# 设置redis密码
requirepass test001
2.4 启动redis的几种方式
IT知识分享网# 后端模式启动服务
cd /usr/redis;./bin/redis-server bin/redis.conf
# 进入命令行模式
cd /usr/redis;bin/redis-cli -h hostname -p 端口号
cd /usr/redis;bin/redis-cli -h 127.0.0.1 -p 6379 #默认
# 退出命令行模式
exit
# 后端模式关闭服务(推荐)
cd /usr/redis;bin/redis-cli shutdown
# 前端模式启动服务(不推荐)
cd /usr/redis;bin/redis-server
2.5 api的方式来调用
// 1.导入依赖包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
// 2.示例代码
package com.lagou.redis;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class JedisDemo {
@Test
public void testConn() {
//与Redis建立连接 IP+port
Jedis redis = new Jedis("127.0.0.1", 6379);
//在Redis中写字符串 key value
redis.set("jedis:name:1", "hoult");
//获得Redis中字符串的值
System.out.println(redis.get("jedis:name:1"));
//在Redis中写list
redis.lpush("jedis:list:1", "1", "2", "3", "4", "5");
//获得list的长度
System.out.println(redis.llen("jedis:list:1"));
}
}
//输出
hoult
5
3.三主三从搭建步骤
3.1 集群规划
伪集群方式,单机上多个端口来模拟,即三台主服务器,三台从服务器,端口从6001-6006 ,安装位置mkdir -p /root/redis-cluster
3.2 创建实例并配置redis.conf文件
# 编译安装
cd /usr/local/redis-5.0.4/src
make install PREFIX=/root/redis-cluster/6001
# 复制redis.conf文件
cp /usr/local/redis-5.0.4/redis.conf /root/redis-cluster/6001/bin/
vi /root/redis-cluster/6001/bin/redis.conf
# 修改port为6001
port 6001
# 打开cluster-enable yes
cluster-enable yes
# ----------------------------------------------
# 配置后端开启模式
# 将`daemonize`由`no`改为`yes`
daemonize yes
# 默认绑定的是回环地址,默认不能被其他机器访问
# bind 127.0.0.1
# 所有机器可以访问
# bind 0.0.0.0
# 建议注释掉 bind x.x.x.x
# 是否开启保护模式,由yes该为no
protected-mode no
# 设置redis密码
requirepass test001
3.3 将6001复制六份,注意修改端口
# 拷贝6001-->6002,6003,6004,6005,6006
cp -r /root/redis-cluster/6001 /root/redis-cluster/6002
cp -r /root/redis-cluster/6001 /root/redis-cluster/6003
cp -r /root/redis-cluster/6001 /root/redis-cluster/6004
cp -r /root/redis-cluster/6001 /root/redis-cluster/6005
cp -r /root/redis-cluster/6001 /root/redis-cluster/6006
# 重新修改:先删除再复制新的redis.conf文件
# 好处:只需要先修改6001的配置文件,再复制,再修改port即可
# rm -rf /root/redis-cluster/6002/bin/redis.conf
# cp /root/redis-cluster/6001/bin/redis.conf /root/redis-cluster/6002/bin/redis.conf
# 修改对应的端口号
vi /root/redis-cluster/6002/bin/redis.conf
3.4 使用启动脚本,启动所有实例
cd /root/redis-cluster/
vim start-redis-cluster.sh
# 启动6001
cd /root/redis-cluster/6001/bin;redis-server redis.conf
# 启动6002
cd /root/redis-cluster/6002/bin;redis-server redis.conf
# 启动6003
cd /root/redis-cluster/6003/bin;redis-server redis.conf
# 启动6004
cd /root/redis-cluster/6004/bin;redis-server redis.conf
# 启动6005
cd /root/redis-cluster/6005/bin;redis-server redis.conf
# 启动6006
cd /root/redis-cluster/6006/bin;redis-server redis.conf
# 赋予权限
chmod 777 start-redis-cluster.sh
# 启动
sh start-redis-cluster.sh
## 登录客户端
./root/redis-cluster/6001/bin/redis-cli -h 127.0.0.1 -p 6001
3.5 使用关闭脚本,关闭所有实例
# stop脚本cd /root/redis-cluster/vim stop-redis-cluster.shps -aux | grep redis | awk '{print $2}' | xargs kill -9# 赋予权限chmod 777 stop-redis-cluster.sh
3.6 删除集群原始数据,并创建集群
# 删除集群遗留任何数据cd /root/redis-cluster/6001/bin/;rm -rf dump.rdb nodes.conf appendonly.aofcd /root/redis-cluster/6002/bin/;rm -rf dump.rdb nodes.conf appendonly.aofcd /root/redis-cluster/6003/bin/;rm -rf dump.rdb nodes.conf appendonly.aofcd /root/redis-cluster/6004/bin/;rm -rf dump.rdb nodes.conf appendonly.aofcd /root/redis-cluster/6005/bin/;rm -rf dump.rdb nodes.conf appendonly.aofcd /root/redis-cluster/6006/bin/;rm -rf dump.rdb nodes.conf appendonly.aof # 创建集群# 注:必须写172.18.0.9(而不是linux121),否则出现:# 1)ERR Invalid node address specified: linux121:6001;# 2)jedis-2.9.0:Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool. Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect;# 3)jedis-2.9.3:redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections?cd /root/redis-cluster/6001/bin;./redis-cli --cluster create IP:6001 IP:6002 IP:6003 IP:6004 IP:6005 IP:6006 --cluster-replicas 1 -a password # 输入yes继续部署
3.7 登录客户端进行验证
# 集群模式:-c必不可少cd /root/redis-cluster/6001/bin/;./redis-cli -h 127.0.0.1 -p 6001 -c
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6106.html