redis3.0 集群实战1 -- 安装和配置
2016-08-26 00:34
435 查看
本文主要是在centos7上安装和配置redis集群实战
参考:
http://hot66hot.iteye.com/blog/2050676
集群教程:
http://redisdoc.com/topic/cluster-tutorial.html#id2
将redis-cli,redis-server,redis-trib.rb cp一个到/usr/bin下或者你目录的bin下
由于redis-trib.rb是用ruby写的,所以需要安装ruby,在联网的方式上,使用
yum install -y ruby
安装完成后,使用ruby --version查看ruby是否正确安装,当前我安装的版本是(ruby 2.0.0p598)
安装rubygem
从官网https://rubygems.org/pages/download下载对应的安装包(tgz或者zip),解压
sudo ruby setup.rb
将生成的gem cp 到 /usr/bin下
安装gem-redis
使用gem install redis --version 3.0.0,不过可能由于源的原因不能安装成功
到官网http://rubygems.org/gems/redis/versions/3.0.0下载对应的gem文件
gem install -l /data/soft/redis-3.0.0.gem 本地安装
在这里用最简单的例子,启动3个redis实例,端口分别为7000,7002,7003,修改对应配置,并且进行启动
修改配置主要包括:
启动redis集群
启动集群时,会有如下一些提示:
Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Performing hash slots allocation on 3 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
M: 36fce4bf6c829797c433c08b045a8c482e07fbc1 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: 7e46925ca9781a403facf450aa0b4b8149ad9c27 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: e89c01d7cc2a83f072f66d0c2fb1f5cd92c66888 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
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 127.0.0.1:7000)
M: 36fce4bf6c829797c433c08b045a8c482e07fbc1 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: 7e46925ca9781a403facf450aa0b4b8149ad9c27 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: e89c01d7cc2a83f072f66d0c2fb1f5cd92c66888 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
[OK] All nodes agree about slots configuration.
Check for open slots...
Check slots coverage...
[OK] All 16384 slots covered.
使用客户端连接集群
使用redis-cli客户端连接集群
[root@bogon bin]# ./redis-cli -c -p 7001
127.0.0.1:7001> set a b
-> Redirected to slot [15495] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set c d
-> Redirected to slot [7365] located at 127.0.0.1:7001
OK
其中redis-cli -c标志表示连接的是一个集群,通过set方式可以看出,会将key进行crc16后hash分片到不同的redis实例上,redis-cli会通过跟redis集群进行交互,把key基于hash分片,把请求自动转到不同的实例上
参考:
http://hot66hot.iteye.com/blog/2050676
集群教程:
http://redisdoc.com/topic/cluster-tutorial.html#id2
1 安装准备
1.1 下载redis3.0版本
到redis官网redis.io或者redis中文官网www.redis.cn上(http://www.redis.cn/download.html)去下载最新的版本,我下载的是redis3.0.3版本,下载后,解压,make后,在src下已经生成redis-cli,redis-server等可执行文件将redis-cli,redis-server,redis-trib.rb cp一个到/usr/bin下或者你目录的bin下
1.2 redis 集群安装
安装ruby由于redis-trib.rb是用ruby写的,所以需要安装ruby,在联网的方式上,使用
yum install -y ruby
安装完成后,使用ruby --version查看ruby是否正确安装,当前我安装的版本是(ruby 2.0.0p598)
安装rubygem
从官网https://rubygems.org/pages/download下载对应的安装包(tgz或者zip),解压
sudo ruby setup.rb
将生成的gem cp 到 /usr/bin下
安装gem-redis
使用gem install redis --version 3.0.0,不过可能由于源的原因不能安装成功
到官网http://rubygems.org/gems/redis/versions/3.0.0下载对应的gem文件
gem install -l /data/soft/redis-3.0.0.gem 本地安装
2 启动集群
启动redis实例在这里用最简单的例子,启动3个redis实例,端口分别为7000,7002,7003,修改对应配置,并且进行启动
修改配置主要包括:
- 端口:修改对应成7000,7001,7002 - 对应的log,pid,data目录 - 集群配置: cluster-enabled yes cluster-config-file nodes-700x.conf #集群在启动时会自动生成 cluster-node-timeout 5000
启动redis集群
./redis-trib.rb create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002
启动集群时,会有如下一些提示:
Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Performing hash slots allocation on 3 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
M: 36fce4bf6c829797c433c08b045a8c482e07fbc1 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: 7e46925ca9781a403facf450aa0b4b8149ad9c27 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: e89c01d7cc2a83f072f66d0c2fb1f5cd92c66888 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
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 127.0.0.1:7000)
M: 36fce4bf6c829797c433c08b045a8c482e07fbc1 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: 7e46925ca9781a403facf450aa0b4b8149ad9c27 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: e89c01d7cc2a83f072f66d0c2fb1f5cd92c66888 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
[OK] All nodes agree about slots configuration.
Check for open slots...
Check slots coverage...
[OK] All 16384 slots covered.
使用客户端连接集群
使用redis-cli客户端连接集群
[root@bogon bin]# ./redis-cli -c -p 7001
127.0.0.1:7001> set a b
-> Redirected to slot [15495] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set c d
-> Redirected to slot [7365] located at 127.0.0.1:7001
OK
其中redis-cli -c标志表示连接的是一个集群,通过set方式可以看出,会将key进行crc16后hash分片到不同的redis实例上,redis-cli会通过跟redis集群进行交互,把key基于hash分片,把请求自动转到不同的实例上
3 安装时遇到的其它问题
3.1 执行./redis-trib.rb时提示 json/pcre not fount
这个表示redis-trib.rb依赖的json_pure在机器中不存在:- 到官网http://rpmfind.net/linux/RPM/opensuse/13.1/x86_64/rubygem-json_pure-1.8.0-2.1.2.x86_64.html,下载对应的rpm包 - json_pure的rpm包需要依赖其它rpm包,如下,如果安装json_pure失败,需要根据提示,下载依赖的rpm包并进行安装 /usr/bin/ruby rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) >= 4.0-1 ruby(abi) >= 2.0.0 rpmlib(PayloadIsLzma) >= 4.4.6-1
相关文章推荐
- redis 慢日志 slowlog
- redis安装与使用
- redis集群出现JedisNoReachableClusterNodeException异常(No reachable node in cluster)
- redis常用命令及安全Redis集群环境搭建
- redis安装包-linux v3.0.5免费版
- CentOS 6.5 下安装 Redis 3.0.7
- Logstash2.3.4趟坑之集成Redis哨兵模式
- [常见问题]在Linux下执行Redis命令不起作用.
- Redis的介绍及使用实例.
- ubuntu 下面 redis 安装和配置
- redis常用知识(二)
- redis常用知识总结(一)
- Redis 源码分析:dict.c 和 dict.h
- Redis 用户验证
- Redis protected-mode
- linux 配置redis集群
- 【无私分享:ASP.NET CORE 项目实战(第十一章)】Asp.net Core 缓存 MemoryCache 和 Redis
- CodeIgniter框架源码笔记(15)——SESSION之Redis驱动实现
- redis
- 解决Visual C++ Redistributable for Visual Studio 2015的安装问题