redis集群安装

参考教程:
https://redis.io/topics/cluster-tutorial
http://doc.redisfans.com/topic/cluster-tutorial.html#id2

1.准备集群文件

mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005

然后创建一个redis.conf文件里面内容如下:

port 7000
cluster-enabled yes
daemonize yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
masterauth   passwd123  #集群密码设置,不需要可去掉
requirepass   passwd123 #集群密码设置,不需要可去掉

然后复制到7000、7001、 7002、 7003、 7004、 7005中,然后把端口号修改成和文件夹对应的端口号。

获取redis文件:
下载redis源码,然后编译得到redis-server,redis-cli,redis-trib.rb文件,其实这就是一个安装单机的redis服务过程。然后,把redis-server,redis-cli,redis-trib.rb三个文件复制到cluster-test文件夹下备用。

说明:如果需要密码最好做一下如下修改:
vim /usr/lib/ruby/gems/1.8/gems/redis-3.3.0/lib/redis/client.rb,然后修改passord

class Client
DEFAULTS = {
:url => lambda { ENV[“REDIS_URL”] },
:scheme => “redis”,
:host => “127.0.0.1”,
:port => 6379,
:path => nil,
:timeout => 5.0,
:password => “passwd123”,
:db => 0,
:driver => nil,
:id => nil,
:tcp_keepalive => 0,
:reconnect_attempts => 1,
:inherit_socket => false
}

要不然可能会报连不上节点的错误

2.创建集群
第一步:分别进入7000、7001、 7002、 7003、 7004、 7005,启动redis服务,例如:

cd 7000
../redis-server redis.conf

启动之后,会自动在各自的文件夹创建两个文件:appendonly.aof和nodes.conf
第二步:创建集群

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7000 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。这个命令就表示创建含三个主节点和三个从节点的集群。接着, redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes , redis-trib 就会将这份配置应用到集群当中。

报错:创建集群过程中可能会报下面三个错误

错误1:
/usr/bin/env: ruby: No such file or directory
说明:需要安装ruby的环境,推荐用yum install ruby安装

错误2:
./redis-trib.rb:24:in `require’: no such file to load – rubygems
(LoadError) from ./redis-trib.rb:24
说明:缺少rubygems组件,推荐用:yum install rubygems安装

错误3:
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in ‘gem_original_require’: no such file to load – redis (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require’ from ./redis-trib.rb:25
说明:缺少redis和ruby的接口,使用gem install redis安装

错误4:输入yes之后,可能会出现连接超时的错误,可以尝试以下更改gem的redis版本,例如:

gem list
gem uninstall redis –version 3.3.2
gem install redis –version 3.3.1
gem list

3.客户端使用
测试 Redis 集群比较简单的办法就是使用 redis-rb-cluster 或者 redis-cli , 例如:
$ redis-cli -c -p 7000
redis 127.0.0.1:7000> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7002
OK
redis 127.0.0.1:7002> set hello world
-> Redirected to slot [866] located at 127.0.0.1:7000
OK
redis 127.0.0.1:7000> get foo
-> Redirected to slot [12182] located at 127.0.0.1:7002
“bar”
redis 127.0.0.1:7000> get hello
-> Redirected to slot [866] located at 127.0.0.1:7000
“world”

说明:如果是设置有密码的则需带上 -a passr123,的方式访问

也可以使用客户端查看集群节点信息
如命令:
redis-cli -p 7000 cluster nodes | grep master
这里写图片描述
说明:以上截图里面使用到了密码,怎么设置密码后面再讲
或者
cluster nodes
这里写图片描述

4.添加、删除节点
添加一个节点:

./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000

说明:命令中的 add-node 表示我们要让 redis-trib 将一个节点添加到集群里面, add-node 之后跟着的是新节点的 IP 地址和端口号, 再之后跟着的是集群中任意一个已存在节点的 IP 地址和端口号, 这里我们使用的是 127.0.0.1:7000 。如果没有指定是什么类型的节点,那么会默认为时主节点,也可以指定添加节点的类型。
同时,如果想要添加的新的主节点启用,则需要把其它节点的一些哈希槽移到该节点下。怎么移动可以查看参考文献。

如果想把新添加的节点改成从节点,则进入新节点客户端,键入以下命令

cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e

说明:其中命令提供的 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 就是已存在的某一个主节点 的节点 ID 。

移出节点:
./redis-trib del-node 127.0.0.1:7000 <node-id>
说明:移出节点前需要先把该节点下的哈希槽移到其它节点下

更多命令可以查看查看参考的文献,下一篇专门讲redis集群密码的设置和使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值