Redis-Cluster实战--.使用redis-cli安装

博客分类:

redis
缓存
redis-cluster
redisCluster指派槽cluster-infomeetslots
转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426 安装视频: 8.2. redis-cluster安装1 8.2. redis-cluster安装2 8.2. redis-cluster安装纠正 一、目的
为什么官方提供了ruby构建集群工具,还要实现一个redis-cli版的集群构建?
答案很简单:
. 熟悉redis-cluster的集群命令和协议(作者给的ruby工具都是在这些命令组合起来)
. 更好的理解redis-cluster
注意:
本文档只为了演示redis-cli搭建Redis-Cluster,实际大集群还是以工具(例如ruby, 其他语言封装的自动化安装工具为第一选择)。 二、准备redis(下载、编译、安装、配置目录、数据目录) . 下载、编译、安装 Java代码
cd /opt/soft
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
tar xzf redis-3.0..tar.gz
cd redis-3.0.
make
make install . 配置目录、数据目录 Java代码
cd /opt/soft/redis-3.0.
mkdir -p data
mkdir -p conf .建立软链接: Java代码
ln -s /opt/soft/redis-3.0. /opt/soft/redis 二、配置、启动Redis节点(本例子以3主、3从组成Redis-Cluster) 实际中应该在多台机器进行安装,这里为了方便演示只用了一台机器,ip=10.10.53.159。 . 配置redis节点,在conf目录下添加6个(-)redis-${port}.conf作为6个节点的配置文件 其中8000-8005是六个端口号 Java代码
port
cluster-enabled yes
cluster-config-file nodes-.conf
cluster-node-timeout
dir "/opt/soft/redis/data/"
appendonly yes
appendfilename "appendonly-8000.aof"
logfile "8000.log"
daemonize yes
pidfile /var/run/redis-.pid
dbfilename "dump-8000.rdb" 生成另外5个文件 Java代码
sed 's/8000/8001/g' redis-.conf > redis-.conf
sed 's/8000/8002/g' redis-.conf > redis-.conf
sed 's/8000/8003/g' redis-.conf > redis-.conf
sed 's/8000/8004/g' redis-.conf > redis-.conf
sed 's/8000/8005/g' redis-.conf > redis-.conf . 启动6个节点。 Java代码
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf . 查看节点是否都已经启动: Java代码
[@zw_53_162 conf]# ps -ef | grep redis
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster] . 查看单个节点:(此时六个节点是分散的,没有形成集群,所有cluster_state=fail) Java代码
[@zw_53_162 conf]# redis-cli -c -p
127.0.0.1:> cluster info
cluster_state:fail
cluster_slots_assigned:
cluster_slots_ok:
cluster_slots_pfail:
cluster_slots_fail:
cluster_known_nodes:
cluster_size:
cluster_current_epoch:
cluster_my_epoch:
cluster_stats_messages_sent:
cluster_stats_messages_received: 四、利用redis-cluster meet命令,实现节点握手,组成集群: cluster meet <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。 . 利用redis-cli连接到8000,然后meet - Java代码
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159 五、分配槽(slots)给节点: . 分派slots cluster addslots <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。 redis-cli -c -p cluster addslots ... (redis-cli 未实现0-5462这样的参数,必须一个个输入。) 所以利用shell生成最终的命令addslots.sh: Java代码
start=$
end=$
port=$
for slot in `seq ${start} ${end}`
do
echo "slot:${slot}"
redis-cli -c -p ${port} cluster addslots ${slot}
done 执行: sh addslots.sh
sh addslots.sh
sh addslots.sh . 确认cluster当前状态 . Java代码
127.0.0.1:> cluster info
cluster_state:ok
cluster_slots_assigned:
cluster_slots_ok:
cluster_slots_pfail:
cluster_slots_fail:
cluster_known_nodes:
cluster_size:
cluster_current_epoch:
cluster_my_epoch:
cluster_stats_messages_sent:
cluster_stats_messages_received: . 确认分配槽状态: Java代码
127.0.0.1:> cluster nodes
6690722c4536210a231af4bdceb604e83d53403e 10.10.53.159: master - connected -
4d2842d9f846481783eafbd9135df372e2153307 10.10.53.159: myself,master - connected -
caefaab1e5d01d76a728c84cb1dc285a6aab15a6 10.10.53.159: master - connected
ec403c50e59460bcb0b47906e567423b7d9aed50 10.10.53.159: master - connected
a52b9d211ec06190bcc4ab36eecf643fa13aa215 10.10.53.159: master - connected
c05ebacbeeb6cbcf52a6ac60384891586226f131 10.10.53.159: master - connected - 127.0.0.1:> cluster slots
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer) 六、配置主从关系(保证高可用): cluster replicate <node_id> 将当前节点设置为 node_id 指定的节点的从节点。 8003设置成8000的从 8004设置成8001的从 8005设置成8002的从 注意这里的命令不是slaveof
<node_id>不是ip:port的形式,需要查询cluster nodes查找自己的node_id(myself) Java代码
redis-cli -c -p cluster replicate `redis-cli -c -p cluster nodes | grep | awk '{print $1}'`
redis-cli -c -p cluster replicate `redis-cli -c -p cluster nodes | grep | awk '{print $1}'`
redis-cli -c -p cluster replicate `redis-cli -c -p cluster nodes | grep | awk '{print $1}'` 七、最终确认集群状态、节点状态、分配槽状态: Java代码
集群状态:
127.0.0.1:> cluster info
cluster_state:ok
cluster_slots_assigned:
cluster_slots_ok:
cluster_slots_pfail:
cluster_slots_fail:
cluster_known_nodes:
cluster_size:
cluster_current_epoch:
cluster_my_epoch:
cluster_stats_messages_sent:
cluster_stats_messages_received: 三主三从
127.0.0.1:> cluster nodes
6690722c4536210a231af4bdceb604e83d53403e 10.10.53.159: master - connected -
4d2842d9f846481783eafbd9135df372e2153307 10.10.53.159: myself,master - connected -
caefaab1e5d01d76a728c84cb1dc285a6aab15a6 10.10.53.159: slave c05ebacbeeb6cbcf52a6ac60384891586226f131 connected
ec403c50e59460bcb0b47906e567423b7d9aed50 10.10.53.159: slave 4d2842d9f846481783eafbd9135df372e2153307 connected
a52b9d211ec06190bcc4ab36eecf643fa13aa215 10.10.53.159: slave 6690722c4536210a231af4bdceb604e83d53403e connected
c05ebacbeeb6cbcf52a6ac60384891586226f131 10.10.53.159: master - connected - 分配槽状态:
127.0.0.1:> cluster slots
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) "10.10.53.159"
) (integer)
 

Redis-Cluster实战--5.使用redis-cli安装的更多相关文章

  1. Redis Cluster搭建高可用Redis服务器集群

    一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节 ...

  2. 搭建分布式 Redis Cluster 集群与 Redis 入门

    目录 Redis 集群搭建 Redis 是啥 集群(Cluster) Redis Cluster 说明 Redis Cluster 节点 Redis Cluster 集群模式 不能保证一致性 创建和使 ...

  3. Redis Cluster 4.0.9 集群安装搭建

    Redis Cluster 4.0.9集群搭建步骤:yum install -y gcc g++ gcc-c++ make openssl cd redis-4.0.9 make mkdir -p / ...

  4. Spring Boot Redis Cluster 实战干货

    添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...

  5. Spring Boot Redis Cluster实战

    添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...

  6. Redis项目实战 .net StackExchange.Redis

    StackExchange.Redis 免费.支持异步.用的最多 常用对象 源码地址:https://github.com/StackExchange/StackExchange.Redis    用 ...

  7. 近千节点的Redis Cluster高可用集群案例:优酷蓝鲸优化实战(摘自高可用架构)

    (原创)2016-07-26 吴建超 高可用架构导读:Redis Cluster 作者建议的最大集群规模 1,000 节点,目前优酷在蓝鲸项目中管理了超过 700 台节点,积累了 Redis Clus ...

  8. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼       Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...

  9. Redis Cluster集群搭建与配置

    Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...

  10. Redis Cluster部署、管理和测试

    背景: Redis 3.0之后支持了Cluster,大大增强了Redis水平扩展的能力.Redis Cluster是Redis官方的集群实现方案,在此之前已经有第三方Redis集群解决方案,如Twen ...

随机推荐

  1. Hihocoder 太阁最新面经算法竞赛18

    Hihocoder 太阁最新面经算法竞赛18 source: https://hihocoder.com/contest/hihointerview27/problems 题目1 : Big Plus ...

  2. Java NIO使用及原理分析(1-4)(转)

    转载的原文章也找不到!从以下博客中找到http://blog.csdn.net/wuxianglong/article/details/6604817 转载自:李会军•宁静致远 最近由于工作关系要做一 ...

  3. 篇三:MySQL分页

    分页:物理分页.逻辑分页 物理分页:SQL语句中直接使用limit 逻辑分页:先查询出所有满足条件的数据,然后在Java中截取需要的行 优缺点: 1.逻辑分页翻页速度快,第一次查询出来的数据会有缓存, ...

  4. javascript关闭页面

    var browserName=navigator.appName; if (browserName=="Netscape") { window.open('','_parent' ...

  5. 通俗理解Android事件分发与消费机制

    深入:Android Touch事件传递机制全面解析(从WMS到View树) 通俗理解Android事件分发与消费机制 说起Android滑动冲突,是个很常见的场景,比如SliddingMenu与Li ...

  6. 贝塔阶段html及pdf模块测试

    这次虽然工作内容是将c#的html及pdf处理程序移植到java中,但是由于重新编写代码使得先前的工作成果得不到利用,于是将其编写为dll,再在java端调用. 这使得在java端即便每个分支都到达, ...

  7. Android基础总结(三)

    测试 黑盒测试 测试逻辑业务 白盒测试 测试逻辑方法 根据测试粒度 方法测试:function test 单元测试:unit test 集成测试:integration test 系统测试:syste ...

  8. 架构师养成记--15.Disruptor并发框架

    一.概述 disruptor对于处理并发任务很擅长,曾有人测过,一个线程里1s内可以处理六百万个订单,性能相当感人. 这个框架的结构大概是:数据生产端 --> 缓存 --> 消费端 缓存中 ...

  9. java中HashMap重要性质和优化总结

    原文: http://www.cnblogs.com/junyuhuang/p/4519257.html

  10. 个人对B/S项目的一些理解(二)

    以下是我自工作以来,结合对C/S项目的认知,对B/S项目的一些理解. 如有不足或者错误,请各位指正.     ----数据处理的升级   在上面的描述中,大家也看到了,远古时期的程序员,其实也听不容易 ...