redis集群

来源:互联网 发布:采购流程及优化 编辑:程序博客网 时间:2024/05/22 05:28

首先安装redis:

   make&&make install

   cp src/redis-trib.rb/usr/local/redis/redis-cluster

   cd /usr/local/redis/redis-cluster

   mkdir 7000 7001 7002 7003 7004 7005

把redis配置文件分别拷贝到7000—7005目录下

修改下面内容:

 port  7000   改成每个redis实例自己的端口

bind   本机ip

daemonize yes   设置为守护进程

pidfile /var/run/redis_7000.pid  改成自己相应的名字

cluster-enabled yes   开启集群

cluster-config-file nodes_7000.conf   集群的配置文件

cluster-node-timeout 15000   集群请求超时时间

appendonlyyes    开启aof持久化

 

 

 

根据不同的配置文件,依次启动不同的redis实例

 

安装ruby

去ruby官网下载安装包,然后安装

解压后:

./configure

make

make install

 

然后去下载redis-4.0.1.gem,自己选择版本

https://rubygems.org/gems/redis/网址

 

gem install -l redis-4.0.1.gem

 

若gem指令出错,自己百度,一般是ruby安装过程出错,会有..will not be intalled 这些提示。主要是linux环境有问题,包不全导致。建议别用centos nimi


 

然后执行

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

 


 

中间要输入个yes,redis集群采用hash slot来分配,总共16384个slot,计算方法crc16(key)%16384,获取数据时也通过这个算法,所以下面指令会跳端口。

 

 

成功启动后登陆,-h指定bind的ip地址,-c表示连接到集群

redis-cli  -h  192.168.94.130  -p  7000  -c

 

//连接redis端口是7000的实例

[root@localhostredis-cluster]# redis-cli -h 192.168.94.130 -p 7000 -c192.168.94.130:7000>set set3 sss-> Redirected toslot [11167] located at 192.168.94.130:7002OK192.168.94.130:7002>set set4 bbb-> Redirected toslot [7032] located at 192.168.94.130:7001OK192.168.94.130:7001>set set5 aaa-> Redirected toslot [2905] located at 192.168.94.130:7000OK192.168.94.130:7000>cluster infocluster_state:okcluster_slots_assigned:16384cluster_slots_ok:16384cluster_slots_pfail:0cluster_slots_fail:0cluster_known_nodes:6cluster_size:3cluster_current_epoch:6cluster_my_epoch:1cluster_stats_messages_ping_sent:481cluster_stats_messages_pong_sent:450cluster_stats_messages_sent:931cluster_stats_messages_ping_received:445cluster_stats_messages_pong_received:481cluster_stats_messages_meet_received:5cluster_stats_messages_received:931


 

 

 

 

//连接redis端口是7002的实例

[xuhaixing@localhost~]$ redis-cli -h 192.168.94.130 -p 7002 -c192.168.94.130:7002>set set1 aa-> Redirected toslot [3037] located at 192.168.94.130:7000OK192.168.94.130:7000>set set2 bb-> Redirected toslot [15294] located at 192.168.94.130:7002OK192.168.94.130:7002>exit[xuhaixing@localhost~]$ redis-cli -h 192.168.94.130 -p 7002 -c192.168.94.130:7002>get set1-> Redirected toslot [3037] located at 192.168.94.130:7000"aa"192.168.94.130:7000>get set2-> Redirected toslot [15294] located at 192.168.94.130:7002"bb"192.168.94.130:7002>get set3"sss"192.168.94.130:7002>get set4-> Redirected toslot [7032] located at 192.168.94.130:7001"bbb"192.168.94.130:7001>get set5-> Redirected toslot [2905] located at 192.168.94.130:7000"aaa"192.168.94.130:7000>



展现奇迹的时刻就出现了:如上面代码所示,应用指令时各redis实例自己切换。

 

集群中每个节点都是平等的,每个节点都与其他节点连接,每个节点都保存自己的数据和整个集群的状态。这样就保证了连接集群中任何一个节点就能获取整个集群的数据。集群至少有三个主节点,当存活的主节点小于一半时,集群挂掉。

 

 

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 发货后退货邮费怎么办 淘宝货到退款怎么办 淘宝收不到货怎么办 淘宝不处理投诉怎么办 实体店不能退货怎么办 顾客无理由退货怎么办 京东衣服质量问题怎么办 买家退货要运费怎么办 卖家不给退运费怎么办 淘宝申请退款卖家不退怎么办 网购商家报复怎么办 淘宝退货店家不同意怎么办 淘宝退货不同意退款怎么办 运费险没收到怎么办 地税逾期未申报怎么办 转转买家发到付怎么办 捡到苹果手机打不开怎么办 捡到指纹手机打不开怎么办 捡到手机密码打不开怎么办 遇到假苹果售后怎么办 做微商被骗囤货怎么办 代理如果不做了怎么办 微商加盟费不退怎么办 手机背面发霉了怎么办 手机电池被换了怎么办 苹果6pcpu发热怎么办 手机漏电怎么办手发麻 iphone主板烧了怎么办 ioS13.1抹掉数据怎么办 阿迪达斯 实体店 假货 怎么办 椰子v2鞋底发黄怎么办 椰子鞋 白色脏了怎么办 微信照片过期怎么办 开淘宝店快递怎么办 淘宝下架cmcc怎么办 别人说你穿假鞋怎么办 浅色裤子染色了怎么办 鞋扣不粘了怎么办 船鞋穿久了会臭怎么办 aj1鞋头开胶怎么办 遇到会搞事的家长怎么办