redis-cluster集群单机搭建

闲来无事自己做的关于redis-cluster集群的测试

redis的安装

下载安装包(这里使用的版本是:redis-3.2.9.tar.gz)

cd /home/download

tar -zxvf redis-3.2.9.tar.gz

mv redis-3.2.9 redis

创建所需要的以端口为区别的文件夹

mkdir cluster

cd cluster && mkdir 7000 7001 7002 7003 7004 7005

cd /home/download/redis

cp redis.conf /home/download/cluster/7000

修改7000里面的配置文件

vim /home/download/cluster/7000/redis.conf

修改以下几项

port 7000

daemonize yes

cluster-enabled yes

cluster-config-file nodes-7000.conf

cluster-node-timeout 5000

appendonly yes

分别复制到其余的文件夹下面,修改端口号和文件名称一样

安装集群管理插件

redis-3.2.1.gem 网上下载一个  我这不是最新版本的

yum install ruby rubygems -y

gem install -l redis-3.2.1.gem

分别启动6个redis

cd /home/download/redis/src

./redis-server /home/download/cluster/7000/redis.conf

./redis-server /home/download/cluster/7001/redis.conf

./redis-server /home/download/cluster/7002/redis.conf

./redis-server /home/download/cluster/7003/redis.conf

./redis-server /home/download/cluster/7004/redis.conf

./redis-server /home/download/cluster/7005/redis.conf

检查启动情况

pa-ef | grep redis

root      49131      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7000 [cluster]

root      49136      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7001 [cluster]

root      49140      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7002 [cluster]

root      49257      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7003 [cluster]

root      49261      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7004 [cluster]

root      49265      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7005 [cluster]

root      76733  75739  0 20:49 pts/2    00:00:00 grep --color=auto redis-server

创建集群

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

(上面的‘1’表示为主的创建一个slave的)

>>> Creating cluster

>>> Performing hash slots allocation on 6 nodes...

Using 3 masters:

127.0.0.1:7000

127.0.0.1:7001

127.0.0.1:7002

Adding replica 127.0.0.1:7003 to 127.0.0.1:7000

Adding replica 127.0.0.1:7004 to 127.0.0.1:7001

Adding replica 127.0.0.1:7005 to 127.0.0.1:7002

M: a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000

slots:0-5460 (5461 slots) master

M: c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001

slots:5461-10922 (5462 slots) master

M: e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002

slots:10923-16383 (5461 slots) master

S: 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003

replicates a08504e2272ddcb9383baf4258bd016d2161d260

S: 71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004

replicates c5ec423721e193f1abb5926194189068d71f2966

S: a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005

replicates e5db2e4845b7869dcbfbbc45bdf6ef22f1187867

Can I set the above configuration? (type ‘yes‘ to accept): yes

会打印出以上内容,输入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:7000)

M: a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000

slots:0-5460 (5461 slots) master

1 additional replica(s)

M: c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001

slots:5461-10922 (5462 slots) master

1 additional replica(s)

S: 71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004

slots: (0 slots) slave

replicates c5ec423721e193f1abb5926194189068d71f2966

S: a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005

slots: (0 slots) slave

replicates e5db2e4845b7869dcbfbbc45bdf6ef22f1187867

M: e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002

slots:10923-16383 (5461 slots) master

1 additional replica(s)

S: 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003

slots: (0 slots) slave

replicates a08504e2272ddcb9383baf4258bd016d2161d260

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

致此,搭建成功

测试可用redis-cli -c -p 7001

127.0.0.1:7001> set name ceshi

OK

127.0.0.1:7001> get name

"ceshi"

查看主从信息

[[email protected] src]# redis-cli -p 7000 cluster nodes

c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 master - 0 1501473285629 2 connected 5461-10922

71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 slave c5ec423721e193f1abb5926194189068d71f2966 0 1501473285120 5 connected

a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 myself,master - 0 0 1 connected 0-5460

a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501473284107 6 connected

e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501473282077 3 connected 10923-16383

37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 slave a08504e2272ddcb9383baf4258bd016d2161d260 0 1501473283091 4 connected

[[email protected] src]# redis-cli -c -p 7005

127.0.0.1:7005> get name

-> Redirected to slot [5798] located at 127.0.0.1:7001

"ceshi"

127.0.0.1:7001> exit

[[email protected] src]# redis-cli -c -p 7002

127.0.0.1:7002> get name

-> Redirected to slot [5798] located at 127.0.0.1:7001

"ceshi"

127.0.0.1:7001> exit

[[email protected] src]#

断点测试

去掉7000redis

[[email protected] src]# ./redis-cli -c -p 7004

127.0.0.1:7004> get name

"ceshi"

127.0.0.1:7004>

可以取到值,再次查看状态信息

[[email protected] src]# ./redis-cli -p 7004 cluster nodes

71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 myself,master - 0 0 7 connected 5461-10922

c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 slave 71518be19ddd2a2ae53fe0f88112897654eb56de 0 1501473934812 7 connected

37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 master - 0 1501473937837 8 connected 0-5460

e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501473936828 3 connected 10923-16383

a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 master,fail - 1501473837708 1501473836698 1 disconnected

a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501473938843 6 connected

再次启动7000redis

./redis-server /usr/local/src/cluster/7000/redis.conf

[[email protected] src]# ./redis-cli -p 7004 cluster nodes

71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 myself,master - 0 0 7 connected 5461-10922

c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 slave 71518be19ddd2a2ae53fe0f88112897654eb56de 0 1501474156543 7 connected

37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 master - 0 1501474159068 8 connected 0-5460

e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501474156038 3 connected 10923-16383

a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 slave 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 0 1501474157049 8 connected

a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501474158057 6 connected

可以看到已经自动成为slave了

				
时间: 2024-10-10 14:50:25

redis-cluster集群单机搭建的相关文章

Redis Cluster集群部署搭建

在Oracle的路上走了许多年,换换感觉,尝试一下新的知识,也是一个不错的感觉.Redis,一个超轻量化的内存数据库,只做一小块数据库功能实现,却非常优秀的一个产品.今天,就分享一下安装Redis集群的过程. 搭建redis集群,建议至少需要准备3台服务器,共搭建6个节点,3个master,3个slave,并且要求3个master节点不能全部跑到同一台服务器上,保证节点安全,3台服务器的配置相同,使用redistest账号搭建,对应的端口是7000/7001/7002端口 我的集群分配如下,每个

redis集群与分片(2)-Redis Cluster集群的搭建与实践

Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.     2.节点的fail是通过集群中超过半

Redis Cluster 集群使用(3)

简介 Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用(HA),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Sharding),不过同样可以实现HA,是官方当前推荐的方案.在Redis Sentinel模式中,每个节点需要保存全量数据,冗余比较多,而在Redis Cluster模式中,每个分片只需要保存一部分的数据,对于内存数据库来说,还是要尽量的减少冗余.在数据量太大的情况下,故障恢复需要较长时间. Redis

Redis Cluster集群搭建测试

# Redis Clutser # ## 一.Redis Cluster集群 ## 参考资料: http://www.cnblogs.com/lykxqhh/p/5690923.html Redis集群搭建的方式有多种,例如使用zookper等,但从redis3.0之后版本支持redis cluster集群,Redis Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互

Redis Cluster集群搭建与应用

1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. 节点的fail是通过集群中超过半数的节点检测失效时才生效. 客户端与redis节点直

Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建

[TOC] Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建 Redis Java API使用(一):单机版本Redis API使用 Redis的Java API通过Jedis来进行操作,因此首先需要Jedis的第三方库,因为使用的是Maven工程,所以先给出Jedis的依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactI

redis cluster集群理解

Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.     2.节点的fail是通过集群中超过半

jedis处理redis cluster集群的密码问题

环境介绍:jedis:2.8.0 redis版本:3.2 首先说一下redis集群的方式,一种是cluster的 一种是sentinel的,cluster的是redis 3.0之后出来新的集群方式 本身redis3.2的cluster集群是支持密码的 ,具体怎么搭建,可以查找相关的文档,这里只介绍应用层面的操作 jedis2.8.0的版本没有实现对redis cluster集群的密码操作 在jedis中创建redis cluster的对象时,一般是采用 JedisCluster jedisClu

centos6下redis cluster集群部署过程

一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从就搭建好了.redis主从中如果主节点发生故障,不会自动切换,需要借助redis的Sentinel(哨兵模式)或者keepalive来实现主的故障转移. 今天介绍下redis cluster集群模式:redis集群是一个无中心的分布式redis存储架构,可以在多个节点之间进行数据共享,解决了redi

Redis Cluster集群总结性梳理

前面已经介绍了Redis Cluster集群及其部署过程,下面再补充下有关Redis Cluster应用原理部分内容,以便更加深刻透彻地理解Redis Cluster. 一.Redis Cluster集群最核心的三个目标 性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式.异步复制.客户端重定向等设计,而牺牲了部分的一致性.使用性. 水平扩展:集群的最重要能力当然是扩展,文档中称可以线性扩展到1000结点. 可用性:在C