redis3

前言:

参考文档

Redis官方集群指南:Redis cluster tutorial a“ Redis

Redis官方集群规范:Redis Cluster Specification a“ Redis

Redis集群指南(中文翻译,紧供参考):集群教程 — Redis 命令参考

Redis集群规范(中文翻译,紧供参考):Redis 集群规范

1、安装步骤

1、依赖包

yum install -y gcc tcl

2、安装

cd /usr/local/

cp /tmp/redis-3.2.9.tar.gz .

tar -zxvf redis-3.2.9.tar.gz

make && make install

mkdir -p /data/service/redis/redis_cluster/

cd /data/service/redis/redis_cluster/

mkdir -p 7111 7112 7113 7114 7115 7116

mkdir /data/service/redis/redis_cluster/7111/log/

mkdir /data/service/redis/redis_cluster/dumps

3、修改配置文件,将配置文件拷贝到每个目录。

port 7111

pidfile "/data/service/redis/redis_cluster/7111/redis_7111.pid"

loglevel verbose

logfile "/data/service/redis/redis_cluster/log/redis_7111.log"

daemonize yes

databases 16

timeout 0

#客户端连接超时时间,0表示关闭

tcp-backlog 511

#确定tcp连接中已完成队列的长度。

tcp-keepalive 60

#检测客户端健康状态的时间,建议60s,单位是s。

#maxmemory 8gb

#使用内存最大值,多余的使用swap

cluster-enabled yes

cluster-config-file "/data/service/redis/redis_cluster/7111/nodes.conf"

cluster-node-timeout 5000

dir "/data/service/redis/redis_cluster/dumps"

appendonly yes

#aof重写

appendfilename "7111.aof"

appendfsync everysec

#每秒写入一次,最优。

no-appendfsync-on-rewrite no

#在在aof-rewrite期间,不暂缓appendfsync文件同步。

auto-aof-rewrite-percentage 100

#当前写入日志文件的大小超过上一次rewrite之后的文件大小的百分之100时就是2倍时触发Rewrite

auto-aof-rewrite-min-size 512mb

#当aof大于512m 才写入硬盘。

#aof-rewrite-incremental-fsyn yes

#aof rewrite 过程,默认文件是增量同步策略。

lua-time-limit 5000

#一个Lua脚本最长的执行时间,单位为毫秒,默认是5000

#notify-keyspace-events ""

#按键通知事件,默认关闭

bind 10.32.5.63

protected-mode no

masterauth "$1$9a$A3v2uy9"

requirepass "$1$9a$A3v2uy9"

cluster-migration-barrier 1

slowlog-log-slower-than 10000

slowlog-max-len 128

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

list-max-ziplist-entries 512

list-max-ziplist-value 64

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

4、创建集群

yum -y install ruby

yum install ruby rubygems

gem install redis

修改密码文件

/usr/lib/ruby/gems/1.8/gems/redis-3.3.3/lib/redis/client.rb

# :password => nil,

:password => ‘$1$9a$A3v2uy9‘,

cd /usr/local/redis/src

./redis-trib.rb create --replicas 1 10.32.5.63:7111 10.32.5.63:7112 10.32.5.63:7113 10.32.5.63:7114 10.32.5.63:7115 10.32.5.63:7116 10.32.5.63:7117 10.32.5.63:7118 10.32.5.63:7119 10.32.5.64:7121 10.32.5.64:7122 10.32.5.64:7123 10.32.5.64:7124 10.32.5.64:7125 10.32.5.64:7126 10.32.5.64:7127 10.32.5.64:7128 10.32.5.64:7129

5、创建启动脚本

6、登录

redis-cli -c -h 10.32.5.63 -p 7111 -a ‘$1$9a$A3v2uy9‘

7、集群客户端

10.32.5.64:7124> GET foo

"bar"

10.32.5.64:7122>

[[email protected] ~]# redis-cli -c -h 10.32.5.63 -p 7111 -a ‘$1$9a$A3v2uy9‘

10.32.5.63:7111> get foo

-> Redirected to slot [12182] located at 10.32.5.64:7124

"bar"

8、重新划分100个槽位,到本节点。

./redis-trib.rb reshard 10.32.5.63:7111

9、计数器

计数器的值只能增加,不能减少。

10、故障转移测试。

1、查看主节点

[[email protected] src]# redis-cli -h 10.32.5.63 -p 7111 -a ‘$1$9a$A3v2uy9‘ cluster nodes |grep master

9a731c78db51c7d9af039c9e1b8240b2bc6174d5 10.32.5.63:7111 myself,master - 0 0 1 connected 1820-3640

16cd1198a3317d32682e0b17edcd842bc61306ef 10.32.5.63:7112 master - 0 1499051510616 2 connected 5461-7281

de651d85822eb2caaa0054b72bb765e950ec66d9 10.32.5.64:7121 master - 0 1499051511617 10 connected 0-1819

ef2d23168a9e4856ef94e19074fa55f239b880ad 10.32.5.64:7123 master - 0 1499051511718 12 connected 7282-9101

851818450b44a179fa25a0ed0667de5f0e618cd3 10.32.5.63:7113 master - 0 1499051511717 3 connected 9102-10922

7b226249af22cfa67bfb15e676c8934e6e4c691d 10.32.5.64:7124 master - 0 1499051511718 13 connected 10923-12742

166116e0e76a2699d4471319306dfc99e246f760 10.32.5.64:7125 master - 0 1499051510115 14 connected 14564-16383

a83ec82fd0e3053e0882337a72c7affb70563d8a 10.32.5.63:7114 master - 0 1499051511117 4 connected 12743-14563

4c402d2324a94228d3cd63235c0acd4ba3547d03 10.32.5.64:7122 master - 0 1499051510617 11 connected 3641-5460

2、关闭一个主节点

[[email protected] src]# redis-cli -c -h 10.32.5.63 -p 7112 -a ‘$1$9a$A3v2uy9‘ debug segfault

Error: Server closed the connection

3、检查主节点

[[email protected] src]# redis-cli -h 10.32.5.63 -p 7111 -a ‘$1$9a$A3v2uy9‘ cluster nodes |grep master

9a731c78db51c7d9af039c9e1b8240b2bc6174d5 10.32.5.63:7111 myself,master - 0 0 1 connected 1820-3640

53494b5e18c726b8f75001c069940e740c6dcb6d 10.32.5.64:7127 master - 0 1499051716944 19 connected 5461-7281

16cd1198a3317d32682e0b17edcd842bc61306ef 10.32.5.63:7112 master,fail - 1499051659552 1499051657348 2 disconnected

de651d85822eb2caaa0054b72bb765e950ec66d9 10.32.5.64:7121 master - 0 1499051717946 10 connected 0-1819

ef2d23168a9e4856ef94e19074fa55f239b880ad 10.32.5.64:7123 master - 0 1499051718446 12 connected 7282-9101

851818450b44a179fa25a0ed0667de5f0e618cd3 10.32.5.63:7113 master - 0 1499051718446 3 connected 9102-10922

7b226249af22cfa67bfb15e676c8934e6e4c691d 10.32.5.64:7124 master - 0 1499051718948 13 connected 10923-12742

166116e0e76a2699d4471319306dfc99e246f760 10.32.5.64:7125 master - 0 1499051718948 14 connected 14564-16383

a83ec82fd0e3053e0882337a72c7affb70563d8a 10.32.5.63:7114 master - 0 1499051717445 4 connected 12743-14563

4c402d2324a94228d3cd63235c0acd4ba3547d03 10.32.5.64:7122 master - 0 1499051718948 11 connected 3641-5460

[[email protected] src]#

从节点升级为主节点。启动7112,发现7112变成从节点。

[[email protected] src]# redis-cli -h 10.32.5.63 -p 7111 -a ‘$1$9a$A3v2uy9‘ cluster nodes

53494b5e18c726b8f75001c069940e740c6dcb6d 10.32.5.64:7127 master - 0 1499052056521 19 connected 5461-7281

53494b5e18c726b8f75001c069940e740c6dcb6d 0 1499052058824 19 connected

cluster nodes 命令的输出有点儿复杂, 它的每一行都是由以下信息组成的:

  • 节点 ID :例如 3fc783611028b1707fd65345e763befb36454d73 。
  • ip:port :节点的 IP 地址和端口号, 例如 127.0.0.1:7000 , 其中 :0 表示的是客户端当前连接的 IP 地址和端口号。
  • flags :节点的角色(例如 master 、 slave 、 myself )以及状态(例如 fail ,等等)。
  • 如果节点是一个从节点的话, 那么跟在 flags 之后的将是主节点的节点 ID : 例如 127.0.0.1:7002 的主节点的节点 ID 就是 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 。
  • 集群最近一次向节点发送 PING 命令之后, 过去了多长时间还没接到回复。
  • 节点最近一次返回 PiNG 回复的时间。
  • 节点的配置纪元(configuration epoch):详细信息请参考 Redis 集群规范 。
  • 本节点的网络连接情况:例如 connected 。
  • 节点目前包含的槽:例如 127.0.0.1:7001 目前包含号码为 5960 至 10921 的哈希槽。

11、添加节点到集群

1、配置启动新节点

2、添加主节点

/redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7111

3、添加作为从节点,作为随机的从节点。

./redis-trib.rb add-node --slave 127.0.0.1:7006 127.0.0.1:7000

4、指定做为从节点

./redis-trib.rb add-node --slave --master-id 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 127.0.0.1:7006 127.0.0.1:7000

5、新添加节点为空主机,使用replicate复制到副本中。如果丐姐蒂娜是从属节点,但是要将其作为不通的主节点的副本移动。此功能也起作用。

添加从节点:

redis 127.0.0.1:7006> cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
redis-cli -p 7000 cluster nodes | grep slave | grep 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
f093c80dde814da99c5cf72a7dd01590792b783b 127.0.0.1:7006 slave 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 0 1385543617702 3 connected
2938205e12de373867bf38f1ca29d31d0ddb3e46 127.0.0.1:7002 slave 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 0 1385543617198 3 connected

12、删除节点:

    1、删除从节点
       ./redis-trib del-node 127.0.0.1:7000 `<node-id>`

2、删除主节点

1、减少主节点数量,先把主节点变成为空节点

2、删除主节点的另一种方法是在其从站之一上执行手动故障切换,并在将节点变为新主节点的从属节点后将其删除

13、副本迁移。

CLUSTER REPLICATE <master-node-id>

14、升级Redis群集中的节点

15、迁移到Redis群集

时间: 2024-09-17 20:04:55

redis3的相关文章

Ubuntu14.04下安装redis-3.2.0以及开机自启动

去官网下载Redis-3.2.0.tar.gz,将redis-3.2.0.tar.gz放入/opt目录下 解压redis-3.2.0.tar.gz [email protected]:/opt$ sudo tar -zxvf redis-3.2.0.tar.gz 编译redis [email protected]:/opt$ cd redis-3.2.0/ [email protected]:/opt/redis-3.2.0$ sudo make 安装 [email protected]:/op

redis3.0集群搭建

Redis集群搭建 redis cluster介绍 节点自动发现.集群容错slave选举.Cluster管理.集群配置管理. 集群中的每个Redis节点需要2个TCP连接端口,如6379端口用于Client连接,16379端口用于集群数据通信 集群采用Hash Slot方案,而不是一致性哈希,共16384个Hashslot.如果有3台机器,那么NodeA在0-5500,NodeB 在5501-11000,NodeC在11001-16384.这种设计下,添加,删除新Node比较方便. 由于Hash

烂泥:redis3.2.3安装与配置

本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自身集群的功能. 而现在最新的项目是需要redis集群的,这篇文章我们就来介绍下有关redis的安装与配置. 一.redis源码安装 截至到2016.8.11,redis最新稳定版本为3.2.3.本篇文章我们就以此版本为基础,进行相关的讲解. 下载redis源码,并进行相关操作,如下: wget ht

Redis3.2.8集群安装配置

准备环境: 使用2台centos服务器,每台机器上部署3个实例,集群为三个主节点与三个从节点: 第一台 192.168.1.107:7000 192.168.1.107:7001 192.168.1.107:7002 第二台 192.168.1.108:7003 192.168.1.108:7004 192.168.1.108:7005 安装配置: 192.168.1.107服务器 #yum -y install gcc zlib ruby rubygems #gem install redis

redis3.2.1安装、配置与使用

centos7安装redis3.2.1 一.下载: 官网下载安装包,再上传到服务器,解压放到指定的目录. redis工具 yum install -y ruby 2.需要手工下载并安装: [[email protected] download]$wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem gem install -l ./redis-3.2.1.gem [[email protected] download]$

CentOS7.2 安装Redis3.2.8

Redis3.2.8 下载 下载Redis3.2.8.tar.gz 将文件放置在usr/local/redis/中 解压文件 安装: make && make install [[email protected] redis-3.2.8]# make && make install 进入usr/local/redis/redis-3.2.8/utils文件夹 ./install_server.sh 详情: [[email protected] utils]# ./insta

Centos 6.7 中 Redis-3.2.8的安装

关于Redis的简单介绍: 官网:www.redis.io Redis 的特点: 1.支持数据的持久化,持久化方案:aof,RDB两种持久化方案,也就是支持将内存中的数据保存到磁盘中,也就是说,redis所在的系统重启后,数据仍旧存在 2.Redis不仅仅支持简单的key-value 类型的数据,同时提供了list,set,zset,hash等数据结构的存储 3.Redis支持数据的备份,也支持高可用Redis 2.8以后的版本以及主从复制. Redis与传统的Mysql关系型数据库的比较: 1

源码安装redis-3.0.5

##### 安装redis-server ##### # 创建运行用户 useradd redis -s /sbin/nologin -M # 上传软件到指定位置,我的软件保存位置为 mkdir -p /server/tools/ # 解压,配置,编译,安装 cd /server/tools/ tar -zxf redis-3.0.5.tar.gz  cd redis-3.0.5 make PREFIX=/usr/local/redis make PREFIX=/usr/local/redis 

Redis3在CENTOS6上的安装配置

重温一下,这次找了个简单的安装. 测试过程很顺利哟. 参考URL: http://www.linuxidc.com/Linux/2015-07/119567.htm 一.介绍 redis在做数据库缓存,session存储,消息队列上用的比较多 二.安装 $ yum install -y wget gcc make tcl$ wget http://download.redis.io/releases/redis-3.0.2.tar.gz$ tar zxvf redis-3.0.2.tar.gz$

CentOS 7 上安装 redis3.2.3安装与配置

前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自身集群的功能. 而现在最新的项目是需要redis集群的,这篇文章我们就来介绍下有关redis的安装与配置. 一.redis源码安装 截至到2016.8.11,redis最新稳定版本为3.2.3.本篇文章我们就以此版本为基础,进行相关的讲解. 下载redis源码,并进行相关操作,如下: wget http://download.redis.io/releases/redis-3.2.3.tar.gz tar -