redis集群安装

安装

下载,提取和编译Redis:

$ wget http://download.redis.io/releases/redis-4.0.8.tar.gz
$ tar xzf redis-4.0.8.tar.gz
$ cd redis-4.0.8
$ make

现在编译的二进制文件在src 目录中可用 。运行Redis:

$ src/redis-server
您可以使用内置客户端与Redis进行交互:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

搭建集群

1、进入redis-4.0.8根目录
cd redis-4.0.8
mkdir redis_cluster
cd redis_cluster
mkdir 7000 7001 7002
cp redis.conf redis_cluster/7000
cp redis.conf redis_cluster/7001
cp redis.conf redis_cluster/7002
2、分别修改这三个配置文件,修改如下内容
port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

接着在另外一台机器上(198.216.15.201),的操作重复以上三步,只是把目录改为7003、7004、7005,对应的配置文件也按照这个规则修改即可

3、启动:
第一台机器上执行
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
4、检查 redis 启动情况

202服务器

redis    20876     1  0 10:43 ?        00:00:26 src/redis-server 198.216.15.202:7000 [cluster]
redis    20877     1  0 10:43 ?        00:00:26 src/redis-server 198.216.15.202:7001 [cluster]
redis    20878     1  0 10:43 ?        00:00:26 src/redis-server 198.216.15.202:7002 [cluster]

201服务器

redis    31696     1  0 16:12 pts/0    00:00:03 src/redis-server 198.216.15.201:7003 [cluster]
redis    31697     1  0 16:12 pts/0    00:00:03 src/redis-server 198.216.15.201:7004 [cluster]
redis    31698     1  0 16:12 pts/0    00:00:03 src/redis-server 198.216.15.201:7005 [cluster]
5、启动集群

Redis 官方提供了 redis-trib.rb (需要前面安装的ruby语言)这个工具,就在解压目录的 src 目录中

安装ruby
第一种安装方法:下载最新版的 Ruby 压缩文件。请点击这里下载
  • 下载 Ruby 之后,解压到新创建的目录下:
$ tar -xvzf ruby-2.2.3.tgz    
$ cd ruby-2.2.3
  • 现在,配置并编译源代码,如下所示:
$ ./configure
$ make
$ sudo make install
  • 安装后,通过在命令行中输入以下命令来确保一切工作正常:
$ruby -v
ruby 2.2.3

gem install redis

第二种安装方法:如果上面方法无法安装ruby,可通过yum安装
yum install ruby
yum install rubygems
gem install redis

如果ruby版本过低会报下面错误 ,解决方法

ERROR:    Error installing redis:
          redis requires Ruby version >= 2.2.2.

再次执行上边命令

redis-trib.rb  create  --replicas 1 198.216.15.202:7000 198.216.15.202:7001 198.216.15.202:7002 198.216.15.201:7003 198.216.15.201:7004 198.216.15.201:7005

输出:

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
198.216.15.202:7000
198.216.15.201:7003
198.216.15.202:7001
Adding replica 198.216.15.201:7005 to 198.216.15.202:7000
Adding replica 198.216.15.202:7002 to 198.216.15.201:7003
Adding replica 198.216.15.201:7004 to 198.216.15.202:7001
M: 530cf6b659fd685ee647515805b98d89d5d8524b 198.216.15.202:7000
   slots:0-5460 (5461 slots) master
M: 6d5bd829a784de772e25d79d55eae6b3d173d26a 198.216.15.202:7001
   slots:10923-16383 (5461 slots) master
S: b9585f528e1b1ee8837762ccecf9ea4d84fd5b47 198.216.15.202:7002
   replicates 80abbc5979277e02ba33044d47c69363ac07b909
M: 80abbc5979277e02ba33044d47c69363ac07b909 198.216.15.201:7003
   slots:5461-10922 (5462 slots) master
S: 246cdd3c12fe65b434cc85da7529a8b6b405b2b3 198.216.15.201:7004
   replicates 6d5bd829a784de772e25d79d55eae6b3d173d26a
S: e215c86996a0dfe4ee6a51bbc1e0240b662f3baa 198.216.15.201:7005
   replicates 530cf6b659fd685ee647515805b98d89d5d8524b
Can I set the above configuration? (type 'yes' to accept):

输入 yes

>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
>>> Performing Cluster Check (using node 198.216.15.202:7000)
M: 530cf6b659fd685ee647515805b98d89d5d8524b 198.216.15.202:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: e215c86996a0dfe4ee6a51bbc1e0240b662f3baa 198.216.15.201:7005
   slots: (0 slots) slave
   replicates 530cf6b659fd685ee647515805b98d89d5d8524b
S: 246cdd3c12fe65b434cc85da7529a8b6b405b2b3 198.216.15.201:7004
   slots: (0 slots) slave
   replicates 6d5bd829a784de772e25d79d55eae6b3d173d26a
M: 6d5bd829a784de772e25d79d55eae6b3d173d26a 198.216.15.202:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: 80abbc5979277e02ba33044d47c69363ac07b909 198.216.15.201:7003
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: b9585f528e1b1ee8837762ccecf9ea4d84fd5b47 198.216.15.202:7002
   slots: (0 slots) slave
   replicates 80abbc5979277e02ba33044d47c69363ac07b909
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

集群验证:

src/redis-cli -h 198.216.15.201 -c -p 7003
198.216.15.201:7003> set hello world
-> Redirected to slot [866] located at 198.216.15.202:7000
OK
198.216.15.202:7000> keys *
1) "hello"
198.216.15.202:7000> exit
[redis@BJNServer redis-4.0.8]$ src/redis-cli -h 198.216.15.202 -c -p 7000
198.216.15.202:7000> keys *
1) "hello"
198.216.15.202:7000> get hello
"world"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • 今天分享三件事情。 第一:“渣渣”突然和我QQ聊天让我不知所措,其实他就简单问了一句:开会说什么丫?我没有...
    大d圆y脸l阅读 153评论 0 0
  • 史黛希·姬伯乐,她是美国职业摔跤的长腿担当,因有着42英寸长腿声名远扬,作为WCW的Nirto女郎出道,有着自然的...
    上官霓虹阅读 14,302评论 11 56
  • 照说应该是一天一更的,但是昨天有点事耽误了,今天早一点起来补上,出生了,3岁之前没什么记忆,就是在托儿所里,父母的...
    疯在云端阅读 134评论 0 0