Redis集群
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis集群,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4525字,纯文字阅读大概需要7分钟。
内容图文
![Redis集群](/upload/InfoBanner/zyjiaocheng/917/b02c74015dc846b98a2e2c3995a5d5be.jpg)
网上做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
内容总结
以上是互联网集市为您收集整理的Redis集群全部内容,希望文章能够帮你解决Redis集群所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。