创建redis节点
我先在127.0.0.1创建6个节点:
cd /data mkdir redis_cluster //创建集群目录 mkdir 6380 6381 6382 6383 6384 6385 //分别代表六个节点 其对应端口 //创建6380节点为例,拷贝到6380目录 cp /opt/redis/redis-4.0.1/redis.conf ./redis_cluster/6380/conf/ //拷贝到6381目录 cp /opt/redis/redis-4.0.1/redis.conf ./redis_cluster/6381/conf/ //拷贝到6382目录 cp /opt/redis/redis-4.0.1/redis.conf ./redis_cluster/6382/conf/
分别对文件夹中的3个文件修改对应的配置
port 6380 //端口6380 cluster-enabled yes //开启集群 把注释#去掉 cluster-config-file nodes_6380.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002 cluster-node-timeout 5000 //请求超时 设置5秒够了 appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
启动
cd /usr/local/bin ./redis-server /data/redis_cluster/6380/conf/redis.conf ./redis-server /data/redis_cluster/6381/conf/redis.conf ./redis-server /data/redis_cluster/6382/conf/redis.conf ./redis-server /data/redis_cluster/6383/conf/redis.conf ./redis-server /data/redis_cluster/6384/conf/redis.conf ./redis-server /data/redis_cluster/6385/conf/redis.conf
5、查看服务
ps -ef | grep redis #查看是否启动成功
netstat -tnlp | grep redis #可以看到redis监听端口
三、创建集群
前面已经准备好了搭建集群的redis节点,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个工具:redis-trib.rb(/usr/local/redis-3.2.1/src/redis-trib.rb) ,它是用ruby写的一个程序,所以我们还得安装ruby.
yum -y install ruby ruby-devel rubygems rpm-build
再用 gem 这个命令来安装 redis接口 gem是ruby的一个工具包.
gem install redis //等一会儿就好了
上面的步骤完事了,接下来运行一下redis-trib.rb
/opt/redis/redis-4.0.1/src/redis-trib.rb
看到这,应该明白了吧, 就是靠上面这些操作 完成redis集群搭建的.
确认所有的节点都启动,接下来使用参数create 创建
/opt/redis/redis-4.0.1/src/redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
解释下, --replicas 1 表示 自动为每一个master节点分配一个slave节点 上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)
前面已经提醒过的 防火墙一定要开放监听的端口,否则会创建失败。
运行中,提示Can I set the above configuration? (type 'yes' to accept): yes //输入yes
接下来 提示 Waiting for the cluster to join..........
四、测试
1)get 和 set数据
redis-cli -c -p 6380
进入命令窗口,直接 set hello howareyou
直接根据hash匹配切换到相应的slot的节点上。
还是要说明一下,redis集群有16383个slot组成,通过分片分布到多个节点上,读写都发生在master节点。