redis301集群安装详细步骤.docx

上传人:b****6 文档编号:3974042 上传时间:2022-11-26 格式:DOCX 页数:13 大小:244.55KB
下载 相关 举报
redis301集群安装详细步骤.docx_第1页
第1页 / 共13页
redis301集群安装详细步骤.docx_第2页
第2页 / 共13页
redis301集群安装详细步骤.docx_第3页
第3页 / 共13页
redis301集群安装详细步骤.docx_第4页
第4页 / 共13页
redis301集群安装详细步骤.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

redis301集群安装详细步骤.docx

《redis301集群安装详细步骤.docx》由会员分享,可在线阅读,更多相关《redis301集群安装详细步骤.docx(13页珍藏版)》请在冰豆网上搜索。

redis301集群安装详细步骤.docx

redis301集群安装详细步骤

redis3.0.0集群安装详细步骤

 

一:

关于rediscluster

1rediscluster的现状

目前redis支持的cluster特性(已亲测):

1):

节点自动发现

2):

slave->master选举,集群容错

3):

Hotresharding:

在线分片

4):

进群管理:

clusterxxx

5):

基于配置(nodes-port.conf)的集群管理

6):

ASK转向/MOVED转向机制.

2rediscluster架构

1)redis-cluster架构图

 

架构细节:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.

(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster负责维护node<->slot<->value

2)redis-cluster选举:

容错

 

(1)领着选举过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout),认为当前master节点挂掉.

(2):

什么时候整个集群不可用(cluster_state:

fail),当集群不可用时,所有对集群的操作做都不可用,收到((error)CLUSTERDOWNTheclusterisdown)错误

  a:

如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.

  b:

如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态.

二:

rediscluster的使用

1安装rediscluster前的准备

1):

安装redis-cluster依赖:

redis-cluster的依赖库在使用时有兼容问题,在reshard时会遇到各种错误,请按指定版本安装.

确保系统安装zlib,否则geminstall会报(nosuchfiletoload--zlib)

 

#download:

zlib-1.2.6.tar  

./configure  

make  

make install  

  

 

 

(1)安装ruby:

version(1.9.2)

 

# ruby1.9.2   

cd /path/ruby  

./configure -prefix=/usr/local/ruby  

make  

make install  

sudo cp ruby /usr/local/bin  

 

(2)安装rubygem:

version(1.8.16)

 

# rubygems-1.8.16.tgz  

cd /path/gem  

sudo ruby setup.rb  

sudo cp bin/gem /usr/local/bin  

 

(3)安装gem-redis:

version(3.0.0)

 

gem install redis --version 3.0.0  

#由于源的原因,可能下载失败,就手动下载下来安装  

#download地址:

http:

//rubygems.org/gems/redis/versions/3.0.0  

gem install -l /data/soft/redis-3.0.0.gem  

 

2安装redis-cluster

 

cd /path/redis  

make  

sudo cp /opt/redis/src/redis-server /usr/local/bin  

sudo cp /opt/redis/src/redis-cli /usr/local/bin  

sudo cp /opt/redis/src/redis-trib.rb /usr/local/bin  

 

 

三Redis集群部署(RedHat6.0)

(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)

1集群环境准备

主机1:

10.10.105.30(7001/7002/7003)

主机2:

10.10.105.50(8001/8002/8003)

2创建集群需要的目录

主机1:

10.10.105.30(path为redis程序所在目录,下同)

mkdir -p /path/cluster

cd /path/cluster

mkdir 7000

mkdir 7001

mkdir 7002

 主机2:

10.10.105.50

mkdir -p /path/cluster

cd /path/cluster

mkdir 8000

mkdir 8001

mkdir 8002

 

3修改配置文件redis.conf

cp /path/redis3.0/redis.conf  /path/cluster

vi redis.conf

##修改配置文件中的下面选项

port 7000

daemonize yes

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到两台主机7000/7001/7002/8000/8001/7002目录下面

主机1:

10.10.105.30

cp /path/cluster/redis.conf /path/cluster/7000

cp /path/cluster/redis.conf /path/cluster/7001

cp /path/cluster/redis.conf /path/cluster/7002

主机2:

10.10.105.50

cp /path/cluster/redis.conf /path/cluster/8000

cp /path/cluster/redis.conf /path/cluster/8001

cp /path/cluster/redis.conf /path/cluster/8002

 

##注意:

拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称

 

4分别启动这6个redis实例

cd /path/cluster/7000

redis-server redis.conf

cd /path/cluster/7001

redis-server redis.conf

cd /path/cluster/7002

redis-server redis.conf

 

cd /path/cluster/8000

redis-server redis.conf

cd /path/cluster/8001

redis-server redis.conf

cd /path/cluster/8002

redis-server redis.conf

 

 

##启动之后使用命令查看redis的启动情况ps -ef|grep redis

如下显示则说明启动成功,注意显示信息的最后面要有”[cluster]”字样,否则表示redis未工作在集群模式。

 bl460g8-30:

ps-ef|grepredis

rcsm98411008:

40?

00:

00:

19./redis-server*:

7001[cluster]

rcsm98481008:

40?

00:

00:

19./redis-server*:

7002[cluster]

rcsm98551008:

40?

00:

00:

19./redis-server*:

7003[cluster]

5执行redis的创建集群命令创建集群

cd /usr/local/redis3.0/src

./redis-trib.rb  create --replicas 1 10.10.105.30:

7000 10.10.105.30:

7001 10.10.105.30:

7002 10.10.105.50:

8000 10.10.105.50:

8001 10.10.105.50:

8002

命令说明:

1redis-trib.rb:

是用ruby脚本语言编写的命令,脚本里面调用的是redis里面的集群指令,关于集群的指令在附录中有描述

2replicas:

代表创建master的同时也创建slave,slave的数量为1

如果看到下面的信息,则表示集群创建成功(图片供参考)

输入yes,然后配置完成。

 

至此redis集群即搭建成功!

6使用redis-cli命令进入集群环境

redis-cli -c –h10.10.105.30-p 7000

:

-c代表以支持集群的方式访问方式

:

-pport

:

-hhostname

7redis集群功能演示

/home/rcsm/zhangj/redis-3.0.1/src>:

./redis-cli-c-p8001-h10.10.105.50

10.10.105.50:

8001>setab

->Redirectedtoslot[15495]locatedat10.10.105.50:

8003

OK

10.10.105.50:

8003>setcd

->Redirectedtoslot[7365]locatedat10.10.105.30:

7002

OK

10.10.105.30:

7002>setef

->Redirectedtoslot[15363]locatedat10.10.105.50:

8003

OK

10.10.105.50:

8003>geta

"b"

10.10.105.50:

8003>getb

->Redirectedtoslot[3300]locatedat10.10.105.50:

8001

(nil)

10.10.105.50:

8001>getc

->Redirectedtoslot[7365]locatedat10.10.105.30:

7002

"d"

10.10.105.30:

7002>

/home/rcsm/zhangj/redis-3.0.1/src>:

 

附录

1) redis通用配置

#GENERAL  

daemonize no  

tcp-backlog 511  

timeout 0  

tcp-keepalive 0  

loglevel notice  

databases 16  

dir /opt/redis/data  

slave-serve-stale-data yes  

#slave只读  

slave-read-only yes  

#not use default  

repl-disable-tcp-nodelay yes  

slave-priority 100  

#打开aof持久化  

appendonly yes  

#每秒一次aof写  

appendfsync everysec  

#关闭在aof rewrite的时候对新的写操作进行fsync  

no-appendfsync-on-rewrite yes  

auto-aof-rewrite-min-size 64mb  

lua-time-limit 5000  

2)redis集群配置  

cluster-enabled yes  

#节点互连超时的阀值  

cluster-node-timeout 15000  

cluster-migration-barrier 1  

slowlog-log-slower-than 10000  

slowlog-max-len 128  

notify-keyspace-events ""  

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  

aof-rewrite-incremental-fsync yes  

 

3)redis特殊配置

 

#包含通用配置  

include /opt/redis/redis-common.conf  

#监听tcp端口  

port 6379  

#最大可用内存  

maxmemory 100m  

#内存耗尽时采用的淘汰策略:

  

# volatile-lru -> remove the key with an expire set using an LRU algorithm  

# allkeys-lru -> remove any key accordingly to the LRU algorithm  

# volatile-random -> remove a random key with an expire set  

# allkeys-random -> remove a random key, any key  

# volatile-ttl -> remove the key with the nearest expire time (minor TTL)  

# noeviction -> don't expire at all, just return an error on write operations  

maxmemory-policy allkeys-lru  

#aof存储文件  

appendfilename "appendonly-6379.aof"  

#rdb文件,只用于动态添加slave过程  

dbfilename dump-6379.rdb  

#cluster配置文件(启动自动生成)  

cluster-config-file nodes-6379.conf  

#部署在同一机器的redis实例,把

 1em; line-height:

 1.5;">auto-aof-rewrite搓开,防止瞬间fork所有redis进程做rewrite,占用大量内存  

auto-aof-rewrite-percentage 80-100  

 

4)cluster操作

cluster集群相关命令,更多redis相关命令见文档:

http:

//redis.readthedocs.org/en/latest/

集群  

CLUSTER INFO 打印集群的信息  

CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。

  

节点  

CLUSTER MEET   将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。

  

CLUSTER FORGET  从集群中移除 node_id 指定的节点。

  

CLUSTER REPLICATE  将当前节点设置为 node_id 指定的节点的从节点。

  

CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。

  

槽(slot)  

CLUSTER ADDSLOTS  [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。

  

CLUSTER DELSLOTS  [slot ...] 移除一个或多个槽对当前节点的指派。

  

CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。

  

CLUSTER SETSLOT  NODE  将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。

  

CLUSTER SETSLOT  MIGRATING  将本节点的槽 slot 迁移到 node_id 指定的节点中。

  

CLUSTER SETSLOT  IMPORTING  从 node_id 指定的节点中导入槽 slot 到本节点。

  

CLUSTER SETSLOT  STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。

  

键  

CLUSTER KEYSLOT  计算键 key 应该被放置在哪个槽上。

  

CLUSTER COUNTKEYSINSLOT  返回槽 slot 目前包含的键值对数量。

  

CLUSTER GETKEYSINSLOT   返回 count 个 slot 槽中的键。

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1