Redis-Cluster实战--5.使用redis-cli安装
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安装的更多相关文章
- Redis Cluster搭建高可用Redis服务器集群
一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节 ...
- 搭建分布式 Redis Cluster 集群与 Redis 入门
目录 Redis 集群搭建 Redis 是啥 集群(Cluster) Redis Cluster 说明 Redis Cluster 节点 Redis Cluster 集群模式 不能保证一致性 创建和使 ...
- 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 / ...
- Spring Boot Redis Cluster 实战干货
添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...
- Spring Boot Redis Cluster实战
添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...
- Redis项目实战 .net StackExchange.Redis
StackExchange.Redis 免费.支持异步.用的最多 常用对象 源码地址:https://github.com/StackExchange/StackExchange.Redis 用 ...
- 近千节点的Redis Cluster高可用集群案例:优酷蓝鲸优化实战(摘自高可用架构)
(原创)2016-07-26 吴建超 高可用架构导读:Redis Cluster 作者建议的最大集群规模 1,000 节点,目前优酷在蓝鲸项目中管理了超过 700 台节点,积累了 Redis Clus ...
- Redis Cluster搭建方法简介22211111
Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼ Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- Redis Cluster部署、管理和测试
背景: Redis 3.0之后支持了Cluster,大大增强了Redis水平扩展的能力.Redis Cluster是Redis官方的集群实现方案,在此之前已经有第三方Redis集群解决方案,如Twen ...
随机推荐
- Zend Framework 1 - Quick Start
创建 Zend 项目 要创建 Zend 项目,首先要下载并解压 Zend Framework. 安装 Zend Framework 下载最新的 Zend Framework 1.12.20 源码包,( ...
- docker 启动安装等命令
确认是否安装url whereis curl 启动docker服务: sudo service docker start sudo service docker stop 安装curl sudo ap ...
- JQuery点滴记录-持续更新
1. 获取各个控件的值 1)获取textArea等控件的值 2)获取span的值 3)删除ul下的所以li 2. jquery获取服务器控件dropdownlist的值 ddl_Type2为dropd ...
- mybatis generator maven插件自动生成代码
如果你正为无聊Dao代码的编写感到苦恼,如果你正为怕一个单词拼错导致Dao操作失败而感到苦恼,那么就可以考虑一些Mybatis generator这个差价,它会帮我们自动生成代码,类似于Hiberna ...
- Spring_跨项目读取properties文件
应用背景:工程中有40~50个项目,分为4个模块,分别是核心模块.服务接口模块.服务实现模块.Web模块.其它模块(包括消息队列.quartz任务等).工程中很多配置项都是多个项目共有调用的,所以单独 ...
- iOS 中block中使用了外部变量的分析
例子1: ; void (^blk)(void) = ^(){ printf("in block %d[%p]\n", val, &val); //in block 10[ ...
- Leetcode 45. Jump Game II
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- 记lrd的高二上学期第五次调研考试
河北某某中学的调研考试其实是很好玩的经历呢.可惜没有太多机会了. 背景: NOIP2016回来之后没有好好学文化课-.自习能翘就翘了,衡中特产学案自助没有好好写(说来我好像从来没被老师查到过,上课写学 ...
- Python 3.5源码编译安装
系统环境:CentOS 6.8-Minimal 安装Python依赖包: [root@Python src]# yum install zlib-devel bzip2-devel openssl-d ...
- Linux可信计算机制模块详细分析之核心文件分析(8)tpm.c核心代码注释(中)
/*设置TPM命令格式*/ ssize_t tpm_getcap(struct device *dev, __be32 subcap_id, cap_t *cap, const char *desc) ...