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. 用EmEditor实现PDF转Word后的对齐排版

    Redraw = false//禁止重绘(类似于VBA中的: Application.screenupdating=FALSE),以提高运行效率 //去除所有空行和只由空白字符构成的行 documen ...

  2. Azure AD Connect 手动同步

    我们目前采用工具Azure AD Connect 目录同步工具将本地域控制器的用户信息同步至office365和Azure 在之前目录同步工具中使用Windows 任务计划程序或单独的 Windows ...

  3. OleDbDataReader快速数据读取方式

    查询得到OleDbDataReader后,有三种方式支持数据读取,如下: //方法一**速度中等 OleDbDataReader reader = command.ExecuteReader(); w ...

  4. ERwin创建逻辑模型

    1.逻辑实体添加非主键属性的三种的方式 属性1:在图中直接创建 属性2:在模型导航器中创建 属性3:在属性对话框中创建 2.实体显示选项(Entity Display) Rolename/Attrib ...

  5. asp.net页面生命周期

    Asp.Net页面生命周期 本文转载自:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html 一.什么是Asp.Net页面生命周期 当 ...

  6. java重置定时器频率

    public class BallUtil { public static Timer fisTimer ; public static void fisStartBall(){ long first ...

  7. redis并发问题

    redis中的并发问题 使用redis作为缓存已经很久了,redis是以单进程的形式运行的,命令是一个接着一个执行的,一直以为不会存在并发的问题,直到今天看到相关的资料,才恍然大悟~~ 具体问题实例 ...

  8. 利用django创建一个投票网站(四)

    创建你的第一个 Django 项目, 第四部分 这一篇从第三部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,专注于简单的表单处理并且精简我们的代码. 编写一个简单的表单 让我们更新一下在上一个 ...

  9. struts-hibernate-ajax完成区县和街道级联下拉框功能(二补充使用json解析list结果集,ajax循环json层级处理)

    针对<struts-hibernate-ajax完成区县和街道级联下拉框功能>进行补充,上一篇中,要在action中拼接JSON格式字符串,很容易手抖.直接用json处理一下转成json格 ...

  10. 如何解决Maven和SBT下载Jar包太慢

    国内:如何解决Maven和SBT下载Jar包太慢 Maven 远程仓库 <mirror> <id>ui</id> <mirrorOf>central&l ...