实验环境 :CentOS 7
redis集群中最少要有3个节点,为了保证集群高可用,需要每个节点有一个备份机。redis集群至少需要6个节点,也就是6台服务器。
本此实验用三台服务器模拟出6个节点,所以一台服务器上要安装两个节点。服务器IP如下(为了安全我的IP是假的):
1、47.103.221.121
2、47.103.222.122
3、47.103.223.123
切换到/usr/local目录下下载
$ cd /usr/local
$ wget http://download.redis.io/releases/redis-5.0.4.tar.gz
$ tar -zxvf redis-5.0.4.tar.gz
指定安装redis到/usr/local/redis目录下
$ cd /usr/local/redis-5.0.4
$ make PREFIX=/usr/local/redis install
成功后输出如下信息
如果不成功可能是你的服务器还没有gcc
切换到/usr/local/redis-5.0.4/src目录下复制文件到usr/local/bin目录
$ cd /usr/local/redis-5.0.4/src
$ cp redis-trib.rb /usr/local/bin/
在 /usr/local/redis/bin目录下新建一个redis_cluster目录用于存放节点配置文件,并在redis_cluster目录中新建7000 7001目录。
$ cd /usr/local/redis/bin
$ mkdir redis_cluster
$ cd redis_cluster
$ mkdir 7000 7001
之后再把/usr/local/redis-5.0.4目录中的redis.conf 拷贝到这两个目录中。
$ cp /usr/local/redis-5.0.4/redis.conf /usr/local/redis/bin/redis_cluster/7000
$ cp /usr/local/redis-5.0.4/redis.conf /usr/local/redis/bin/redis_cluster/7001
port 7000 //端口7000,7002,7003
bind 0.0.0.0 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群 ,我的修改成主机ip启动不了redis,我也不是啥原因,0.0.0.0就可以
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001 把注释#去掉
appendonly yes //aof日志开启 可不开启不影响,可根据需求开启
到此一台机中的两个redis节点就已经配置成功,
然后再另外两台机重复以上操作即可,但需要目录改为7002、7003、7004,7005 对应的配置文件也按照这个规则修改即可
分别在每台主机中启动各节点,切换到/usr/local/redis/bin目录下执行如下命令
注意:要在节点所在的主机中执行
//启动 7000、7001节点
$ ./redis-server redis_cluster/7000/redis.conf
$ ./redis-server redis_cluster/7001/redis.conf
//启动 7002、7003节点
$ ./redis-server redis_cluster/7002/redis.conf
$ ./redis-server redis_cluster/7003/redis.conf
//启动 7004、7005节点
$ ./redis-server redis_cluster/7004/redis.conf
$ ./redis-server redis_cluster/7005/redis.conf
在个主机中执行如下命令
$ netstat -tnlp | grep redis
第一台主机输出如下就启动成功了,当然我这只是第一台机的,你也可以看其他两机的
//关闭防火墙
$ systemctl stop firewalld.service
$ systemctl disable firewalld.service
//关闭SELINUX
$ vim /etc/selinux/config
//注释掉
#SELINUX=enforcing
#SELINUXTYPE=targeted
//添加
SELINUX=disabled
在其中一台机中执行即可
切换到/usr/local/redi/bin目录下执行
$ cd /usr/redis/bin
$ ./redis-cli --cluster create --cluster-replicas 1 47.103.221.121:7000 47.103.221.121:7001 47.103.222.122:7002 47.103.222.122:7003 47.103.223.123:7004 47.103.223.123:7005
执行上面第二条命令后输入yes即可创建集群
等待会后输出如下信息即创建成功了
在第一台机的7000节点中set一个数据,然后在第二台机中get这个数据的key
[root@master bin]# ./redis-cli -h 47.103.221.121 -c -p 7000
47.103.221.121:7000> set test 12345
-> Redirected to slot [6918] located at 47.103.222.122:7003
OK
47.103.222.122:7003>
[root@slave2 bin]# ./redis-cli -h 47.103.223.123 -c -p 7005
47.103.223.123:7005> get test
-> Redirected to slot [6918] located at 47.103.222.122:7003
"12345"
47.103.222.122:7003>
可以看出集群成功了。
本次实验室是在java项目中连接需要自己下载jar包,当然你也创建maven项目导入redis依赖也可以,为了方便没有安装的maven人测试本次使用纯java项目
下载地址:
http://repo1.maven.org/maven2/redis/clients/jedis/3.0.0/jedis-3.0.0-sources.jar.asc
然后导入到java项目中
import redis.clients.jedis.Jedis;
public class RedisJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("你的服务器ip",你的redis端口);
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
}
}
运行后输出:
连接成功
服务正在运行: PONG
import redis.clients.jedis.Jedis;
public class RedisJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("你的服务器ip",你的redis端口);
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
System.out.println("连接成功"+jedis.ping());
//增加数据
jedis.set("name", "zzq");
System.out.println("添加成功");
//获取数据
System.out.println(jedis.get("name"));
}
}
输出如下数据
连接成功PONG
添加成功
zzq
到这简单的操作连接验证成功了
到此文章结束!