ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis集群

2019-02-16 16:41:46  阅读:275  来源: 互联网

标签:10.0 Redis redis 0.15 cluster 集群 7000 slots


  网上做Redis集群集群的博客,大多是在一台或者两台虚拟机上起了6个redis,本篇博文,在3台虚拟机上做此实验.

1.环境准备

# 安装ruby、rubygems,是因为创建集群的脚本是用ruby写的
# 单实例的redis,每秒读写最大QPS是11万,一般是控制在5万以内,最佳是3万,超过7万就会出问题
yum -y install ruby rubygems
# 可以替换成国内镜像
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem install redis
Fetching: redis-4.1.0.gem (100%)
ERROR:  Error installing redis:
	redis requires Ruby version >= 2.2.2.
# 报错:说是ruby的版本过低,至少得2.2.2,通过yum安装的ruby版本是2.0.0,所以进行以下操作

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm list known    # 列出ruby版本列表
rvm install 2.4.1 # 这里安装ruby2.4.1,大约需要十分钟

下载rvm截图

升级完ruby之后安装redis

2.配置并启动服务

mkdir /var/log/redis
# 在10.0.0.16上创建{7002,7003},10.0.0.17上创建{7004,7005}
mkdir -p mkdir /usr/local/redis_cluster/{7000,7001}
cd /usr/local/redis_cluster
cp /usr/local/redis/redis.conf 7000/
# 修改配置文件,修改如下内容,总共6个配置文件,分别修改IP和端口

bind 10.0.0.15
protected-mode no
port 7000
daemonize yes
pidfile "/var/run/redis_7000.pid"
logfile "/var/log/redis/redis_7000.log"
dir "./"
cluster-enabled  yes
cluster-config-file  nodes_7000.conf
cluster-node-timeout  15000
appendonly yes

# 启动服务
10.0.0.15
redis-server /usr/local/redis_cluster/7000/redis.conf
redis-server /usr/local/redis_cluster/7001/redis.conf
10.0.0.16
redis-server /usr/local/redis_cluster/7002/redis.conf
redis-server /usr/local/redis_cluster/7003/redis.conf
10.0.0.17
redis-server /usr/local/redis_cluster/7004/redis.conf
redis-server /usr/local/redis_cluster/7005/redis.conf

创建集群

/usr/local/redis/src/redis-trib.rb create --replicas 1 10.0.0.15:7000 \
10.0.0.15:7001 10.0.0.16:7002 10.0.0.16:7003 10.0.0.17:7004 10.0.0.17:7005

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
10.0.0.15:7000
10.0.0.16:7002
10.0.0.17:7004
Adding replica 10.0.0.16:7003 to 10.0.0.15:7000
Adding replica 10.0.0.15:7001 to 10.0.0.16:7002
Adding replica 10.0.0.17:7005 to 10.0.0.17:7004
M: 5c7abc77cc35032a1ecf5b7f25301336dce8a4dc 10.0.0.15:7000
   slots:0-5460 (5461 slots) master
S: 8683a7e9bb9fcb435a77b54dcfdcb31eb1efcc9f 10.0.0.15:7001
   replicates 9fa8b7143f87b7326a35d5a1108b554afaf6e37a
M: 9fa8b7143f87b7326a35d5a1108b554afaf6e37a 10.0.0.16:7002
   slots:5461-10922 (5462 slots) master
S: c32f1532f8cdf76876d46b84b4fcb284d4bda1d7 10.0.0.16:7003
   replicates 5c7abc77cc35032a1ecf5b7f25301336dce8a4dc
M: b6a45a8dfc746997e481c3cb8bd6ef544db693f0 10.0.0.17:7004
   slots:10923-16383 (5461 slots) master
S: 4c266ca5b75544eb231aaf4c7ff659c3a16fe46e 10.0.0.17:7005
   replicates b6a45a8dfc746997e481c3cb8bd6ef544db693f0
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 10.0.0.15:7000)
M: 5c7abc77cc35032a1ecf5b7f25301336dce8a4dc 10.0.0.15:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 9fa8b7143f87b7326a35d5a1108b554afaf6e37a 10.0.0.16:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 4c266ca5b75544eb231aaf4c7ff659c3a16fe46e 10.0.0.17:7005
   slots: (0 slots) slave
   replicates b6a45a8dfc746997e481c3cb8bd6ef544db693f0
M: b6a45a8dfc746997e481c3cb8bd6ef544db693f0 10.0.0.17:7004
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 8683a7e9bb9fcb435a77b54dcfdcb31eb1efcc9f 10.0.0.15:7001
   slots: (0 slots) slave
   replicates 9fa8b7143f87b7326a35d5a1108b554afaf6e37a
S: c32f1532f8cdf76876d46b84b4fcb284d4bda1d7 10.0.0.16:7003
   slots: (0 slots) slave
   replicates 5c7abc77cc35032a1ecf5b7f25301336dce8a4dc
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

# 登录集群中某一个节点
redis-cli -h 10.0.0.15 -c -p 7000
# 查看集群节点
redis-cli -p 7000 -h 10.0.0.25 cluster nodes
# 当数据分布不均匀时,可以重新分片
/usr/local/redis/src/redis-trib.rb reshard 10.0.0.15:7000

  需要注意的是:必须要3个或以上的主节点,否则在创建集群时会失败;并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了.

 

Redis集群搭建与简单使用:https://www.cnblogs.com/wuxl360/p/5920330.html

redis三主三从搭建:http://blog.51cto.com/13520772/2316992

Redis API-PHP连接redis、Python连接redis、redis cluster的连接与操作、sentinel集群连接并操作:http://blog.51cto.com/13520772/2109405

 

标签:10.0,Redis,redis,0.15,cluster,集群,7000,slots
来源: https://www.cnblogs.com/fawaikuangtu123/p/10388188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有