转载自:http://baijiahao.baidu.com/s?id=1588544341614288867&wfr=spider&for=pc
要让集群正常工作至少需要3个主节点,所以我们要设置3个主节点,3个从节点,共6个集群节点。
安装redis
wget http://download.redis.io/releases/redis-3.2.1.tar.gz
tar -zxvf redis-3.2.1.tar.gz
mv redis-3.2.1 redis
cd redis
make && make install
开启对外端口
/sbin/iptables -I INPUT -p tcp --dport 7000 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 7001 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 7002 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 7003 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 7004 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 7005 -j ACCEPT
修改redis配置文件 redis/redis.conf
在参与集群的机器上分别做以下操作
创建并修改redis配置文件,一台机器只有一个redis可不用复制
mkdir redis_cluster //创建集群目录
cd redis_cluster
mkdir 7000 7001 7002 7003 7004 7005 //分别代表三个节点 其对应端口 7000 7001 7002
cp /root/redis/redis.conf /root/redis/redis_cluster/7000 //拷贝到7000目录
cp /root/redis/redis.conf /root/redis/redis_cluster/7001 //拷贝到7001目录
cp /root/redis/redis.conf /root/redis/redis_cluster/7002 //拷贝到7002目录
cp /root/redis/redis.conf /root/redis/redis_cluster/7003 //拷贝到7002目录
cp /root/redis/redis.conf /root/redis/redis_cluster/7004 //拷贝到7002目录
cp /root/redis/redis.conf /root/redis/redis_cluster/7005 //拷贝到7002目录
分别修改以上配置文件的端口
在使用redhat7的yum命令安装软件时,发现总是提示This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. 或如下错误信息:This system is not registered with RHN. RHN support will be disabled.原来RHEL7的yum服务是付费的,因为没有付费,所以无法使用yum安装软件,只能替换为CentOs的yum工具,下面是具体操作步骤。
在/etc/yum.repos.d/下面新建CentOS-Base.repo
touch CentOS-Base.repo
編輯CentOS-Base.repo,然後粘貼下面內容:
[base]
name=CentOS-7-Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever7&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://ftp.sjtu.edu.cn/centos/7/os/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos7
#released updates
[update]
name=CentOS-7-Updates
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=updates
baseurl=http://ftp.sjtu.edu.cn/centos/7/updates/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos7
#packages used/produced in the build but not released
[addons]
name=CentOS-7-Addons
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=addons
#baseurl=http://ftp.sjtu.edu.cn/centos/7/addons/$basearch/
baseurl=http://ftp.sjtu.edu.cn/centos/7/os/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos7
#additional packages that may be useful
[extras]
name=CentOS-7-Extras
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=extras
baseurl=http://ftp.sjtu.edu.cn/centos/7/extras/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7-Plus
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=centosplus
baseurl=http://ftp.sjtu.edu.cn/centos/7/centosplus/$basearch/
gpgcheck=0
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos7
#contrib - packages by Centos Users
[contrib]
name=CentOS-7-Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=contrib
baseurl=http://ftp.sjtu.edu.cn/centos/7/contrib/$basearch/
gpgcheck=0
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos7
保存,退出
执行下面命令,先清空yum,再重新编译
yum clean all
yum makecache
安装Ruby环境
yum -y install ruby ruby-devel rubygems rpm-build (centos)
// 再用 gem 这个命令来安装 redis接口 gem是ruby的一个工具包.
gem install redis --version 3.2.1
先启动每个单独的redis
进入redis/src目录
redis-server ../redis_cluster/7000/redis.conf
redis-server ../redis_cluster/7001/redis.conf
redis-server ../redis_cluster/7002/redis.conf
redis-server ../redis_cluster/7003/redis.conf
redis-server ../redis_cluster/7004/redis.conf
redis-server ../redis_cluster/7005/redis.conf
再启动集群
./redis-trib.rb create --replicas 1 192.168.20.99:7000 192.168.20.99:7001 192.168.20.99:7002 192.168.20.99:7003 192.168.20.99:7004 192.168.20.99:7005
命令的意义如下:
给定 redis-trib.rb 程序的命令是 create,表示创建一个新的集群。选项 --replicas 1 表示为集群中的每个主节点创建一个从节点。之后跟着的其他参数则是实例的地址列表, 指定使用这些地址所指示的实例来创建新集群。
进入redis数据库中
./redis-cli -h 192.168.20.99 -c -p 7000
进行测试,在7000里面set city nanjing,在7005里面get city,查看结果
Cluster命令
进入7000的redis查看集群的一些状态
查看redis进程
ps -ef | grep -i redis
关闭7000进程 kill -9 33976
如果进程全部被关闭之后,再启动,某个节点变成独立节点,就要把该节点重新添加到集群里面
./redis-cli -h 192.168.20.99 -c -p 7005
CLUSTER MEET 192.168.20.99 7003
集群信息
Cluster info
集群节点信息
Cluster nodes
java代码要对集群进行增删改查操作,首先要引入jedis.jar和commons-pool2.jar
然后就可以操作redis集群了