Redis 3.0 Cluster集群配置

安装环境依赖

安装gcc:yum install gcc

安装zlib:yum install zib

安装ruby:yum install ruby

安装rubygems:yum install rubygems

安装ruby的redis驱动:gem install redis

安装redis

参考:http://www.cnblogs.com/rwxwsblog/p/5285732.html

修改配置文件

vi 6379.conf

port=6379
pidfile /var/run/redis_6379.pid
logfile /var/log/redis_6379.log
daemonize=yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
appendonly yes
dir /var/lib/redis/6379

复制相应的配置文件并按上述配置文件修改相应的配置(注意端口和路径)

cp 6379.conf 6380.conf
cp 6379.conf 6381.conf
cp 6379.conf 6382.conf
cp 6379.conf 6383.conf
cp 6379.conf 6384.conf
cp 6379.conf 6385.conf

依次修改相应的配置文件6380.conf6381.conf6382.conf6383.conf6384.conf6385.conf

如:vi 6380.conf

批量替换端口:%s/6379/6380/g并保存

创建数据文件目录

mkdir -p /var/lib/redis/6380 /var/lib/redis/6381 /var/lib/redis/6382 /var/lib/redis/6383 /var/lib/redis/6384 /var/lib/redis/6385

创建集群

  • 安装并配置完后6379端口的redis实例需要重启,否则会报错
  • 创建前需要分别启动redis实例

cp redis-3.0.7/src/redis-trib.rb /usr/local/bin/

redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

创建集群实例及异常情况

[root@cas ~]# redis-trib.rb create --replicas 1  127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
>>> Creating cluster
[ERR] Node 127.0.0.1:6379 is not configured as a cluster node.
[root@cas ~]# ps -ef|grep redis
root 22342 1 0 10:29 ? 00:00:03 /usr/local/bin/redis-server *:6379
root 22456 1 0 10:51 ? 00:00:00 redis-server *:6380 [cluster]
root 22460 1 0 10:51 ? 00:00:00 redis-server *:6381 [cluster]
root 22464 1 0 10:52 ? 00:00:00 redis-server *:6382 [cluster]
root 22470 1 0 10:52 ? 00:00:00 redis-server *:6383 [cluster]
root 22474 1 0 10:52 ? 00:00:00 redis-server *:6384 [cluster]
root 22478 1 0 10:52 ? 00:00:00 redis-server *:6385 [cluster]
root 23530 22364 0 10:58 pts/1 00:00:00 grep --color=auto redis
[root@cas ~]# kill 22342
[root@cas ~]# redis-server /etc/redis/6379.conf
[root@cas ~]# ps -ef|grep redis
root 22456 1 0 10:51 ? 00:00:00 redis-server *:6380 [cluster]
root 22460 1 0 10:51 ? 00:00:00 redis-server *:6381 [cluster]
root 22464 1 0 10:52 ? 00:00:00 redis-server *:6382 [cluster]
root 22470 1 0 10:52 ? 00:00:00 redis-server *:6383 [cluster]
root 22474 1 0 10:52 ? 00:00:00 redis-server *:6384 [cluster]
root 22478 1 0 10:52 ? 00:00:00 redis-server *:6385 [cluster]
root 23534 1 0 10:59 ? 00:00:05 redis-server *:6379 [cluster]
root 23532 22364 0 10:59 pts/1 00:00:00 grep --color=auto redis
[root@cas ~]# redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
>>> Creating cluster
>>> Performing hash slots allocation on 7 nodes...
Using 3 masters:
127.0.0.1:6379
127.0.0.1:6380
127.0.0.1:6381
Adding replica 127.0.0.1:6382 to 127.0.0.1:6379
Adding replica 127.0.0.1:6383 to 127.0.0.1:6380
Adding replica 127.0.0.1:6384 to 127.0.0.1:6381
Adding replica 127.0.0.1:6385 to 127.0.0.1:6379
M: 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9 127.0.0.1:6379
slots:0-5460 (5461 slots) master
M: c8b630395c21c10edaf7644bd691ec06f73b9403 127.0.0.1:6380
slots:5461-10922 (5462 slots) master
M: 0d9eaa1f846081556ceedf41d92939b9f142b698 127.0.0.1:6381
slots:10923-16383 (5461 slots) master
S: 124283594652936b01287e0c7fda5b9b8b6e15ad 127.0.0.1:6382
replicates 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9
S: febaa9b89d0589e36bc7fd66d14173042e2158ed 127.0.0.1:6383
replicates c8b630395c21c10edaf7644bd691ec06f73b9403
S: 402c2e5d1f9284b09098f43cd9f14821fc7be8cf 127.0.0.1:6384
replicates 0d9eaa1f846081556ceedf41d92939b9f142b698
S: 51af4cfa2ab1b144cc72058175442ff15808a912 127.0.0.1:6385
replicates 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9
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 127.0.0.1:6379)
M: 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9 127.0.0.1:6379
slots:0-5460 (5461 slots) master
M: c8b630395c21c10edaf7644bd691ec06f73b9403 127.0.0.1:6380
slots:5461-10922 (5462 slots) master
M: 0d9eaa1f846081556ceedf41d92939b9f142b698 127.0.0.1:6381
slots:10923-16383 (5461 slots) master
M: 124283594652936b01287e0c7fda5b9b8b6e15ad 127.0.0.1:6382
slots: (0 slots) master
replicates 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9
M: febaa9b89d0589e36bc7fd66d14173042e2158ed 127.0.0.1:6383
slots: (0 slots) master
replicates c8b630395c21c10edaf7644bd691ec06f73b9403
M: 402c2e5d1f9284b09098f43cd9f14821fc7be8cf 127.0.0.1:6384
slots: (0 slots) master
replicates 0d9eaa1f846081556ceedf41d92939b9f142b698
M: 51af4cfa2ab1b144cc72058175442ff15808a912 127.0.0.1:6385
slots: (0 slots) master
replicates 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

检查redis集群的健康状况

[root@cas ~]# redis-trib.rb check 127.0.0.1:6379
>>> Performing Cluster Check (using node 127.0.0.1:6379)
M: 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9 127.0.0.1:6379
slots:0-5460 (5461 slots) master
2 additional replica(s)
S: 402c2e5d1f9284b09098f43cd9f14821fc7be8cf 127.0.0.1:6384
slots: (0 slots) slave
replicates 0d9eaa1f846081556ceedf41d92939b9f142b698
M: c8b630395c21c10edaf7644bd691ec06f73b9403 127.0.0.1:6380
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: 0d9eaa1f846081556ceedf41d92939b9f142b698 127.0.0.1:6381
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 124283594652936b01287e0c7fda5b9b8b6e15ad 127.0.0.1:6382
slots: (0 slots) slave
replicates 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9
S: febaa9b89d0589e36bc7fd66d14173042e2158ed 127.0.0.1:6383
slots: (0 slots) slave
replicates c8b630395c21c10edaf7644bd691ec06f73b9403
S: 51af4cfa2ab1b144cc72058175442ff15808a912 127.0.0.1:6385
slots: (0 slots) slave
replicates 477a3dad67b2a3ff8bd70e3b3c8a6112eab081e9
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

管理cluster

添加节点

add-node的使用方法为new_host:new_port existing_host:existing_port,前面是新添加的节点信息,后面是已存在的节点信息
redis-trib.rb add-node 192.168.3.61:6379 192.168.3.88:6379

数据分片及删除节点

参考:http://blog.sina.com.cn/s/blog_75ad98f30102w6po.html

参考文档:

Redis 3.0 Cluster集群配置的更多相关文章

  1. 配置redis 4.0.11 集群

    配置redis 4.0.11 集群 准备redis 软件和redis配置文件 启动Redis服务 /data/soft/redis/src/redis-check-aof --fix /log/red ...

  2. Redis高可用之集群配置(六)

    0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...

  3. Redis 5.0.5集群搭建

    Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...

  4. Redis-5.0.5集群配置

    版本:redis-5.0.5 参考:http://redis.io/topics/cluster-tutorial. 集群部署交互式命令行工具:https://github.com/eyjian/re ...

  5. CentOS7.1.x+Druid 0.12 集群配置

    原文转载自:https://blog.csdn.net/bigtree_3721/article/details/79583008 先决条件:安装版本列表 本次安装满足下面的条件: CentOS v7 ...

  6. Redis 3.0.5 集群的命令、使用、维护

    cluster命令 CLUSTER INFO 打印集群的信息 CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息. //节点 CLUSTER MEET < ...

  7. redis 3.0的集群部署

    转载请注明出处:http://hot66hot.iteye.com/admin/blogs/2050676 最近研究redis-cluster,正好搭建了一个环境,遇到了很多坑,系统的总结下,等到re ...

  8. (转)redis 3.0的集群部署

    一:关于redis cluster 1:redis cluster的现状 reids-cluster计划在redis3.0中推出,可以看作者antirez的声明:http://antirez.com/ ...

  9. Redis 3.0.2集群搭建以及相关问题汇总

    Redis3 正式支持了 cluster,是为了解决构建redis集群时的诸多不便 (1)像操作单个redis一样操作key,不用操心key在哪个节点上(2)在线动态添加.删除redis节点,不用停止 ...

随机推荐

  1. TCP进制转换

    /// <summary> /// 将十六进制字符串转化为字节数组 /// </summary> /// <param name="src">& ...

  2. C# Webbrowser 常用方法及多线程调用

    设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...

  3. 使用EXtjs6.2构建web项目

    一.项目简介 众所周知ext是一款非常强大的表格控件,尤其是里边的grid为用户提供了非常多的功能,现在主流的还是用extjs4.0-4.2,但是更高一点的版本更加符合人的审美要求.因此,在今天咱们构 ...

  4. 函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法

    1. 用法一 LOCATE(substr,str) POSITION(substr IN str) 函数返回子串substr在字符串str中第一次出现的位置.如果子串substr在str中不存在,返回 ...

  5. 页置换算法FIFO、LRU、OPT

    页置换算法FIFO.LRU.OPT 为什么需要页置换 在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断.当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调 ...

  6. Ubuntu下运行Shell脚本

    将一个脚本保存为带有扩展名的文件,如test.sh, 在终端上输入: chmod +x test.sh 然后输入: test.sh 终端显示: test.sh 找不到命令(后来看了鸟个私房菜,发现这样 ...

  7. vue 组建实现数据的双向绑定

    <!DOCTYPE html><html><head> <style>body {  font-family: Helvetica Neue, Aria ...

  8. Python Day18

    WEB框架 MVC Model View Controller 数据库 模板文件 业务处理 MTV Model Template View 数据库 模板文件 业务处理 Web请求流程 -- 原始Web ...

  9. 创建Mat对象的几种方法

    1.Mat的构造函数 Mat M(行数,列数,数据类型,通道数) eg:M(2,2, CV_8UC3, Scalar(0,0,255)). 2.利用Mat的Create()函数.Mat M; M.cr ...

  10. selenium 等待页面加载完成

    一.隐形加载等待: file:///C:/Users/leixiaoj/Desktop/test.html 该页面负责创建一个div <html> <head> <tit ...