首页 > 数据库 >两台服务器redis 3.0.5分布式集群安装部署

两台服务器redis 3.0.5分布式集群安装部署

时间:2023-08-07 12:33:46浏览次数:32  
标签:0.219 redis 192.168 0.60 etc 3.0 slots 分布式

两台服务器redis 3.0.5分布式集群安装部署

目前redis支持的cluster特性:

1):节点自动发现

2):slave->master 选举,集群容错

3):Hot resharding:在线分片

4):集群管理:cluster xxx

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

6):ASK 转向/MOVED 转向机制.


一、redis集群安装

两台电脑:   192.168.0.60  192.168.0.219

1.分别在两台电脑下载redis(redis-3.0.5)

wget  http://download.redis.io/releases/redis-3.0.5.tar.gz

2. 分别在两台电脑解压,编译

tar  -zxvf redis-3.0.5.tar.gz

mv redis-3.0.5 /usr/local/redis3.0

cd  /usr/local/redis3.0

make

make install

3. 分别在两台电脑创建集群需要的目录

1)192.168.0.60

cd /etc/redis

mkdir 9000  9001 9002

2) 192.168.0.219

cd /etc/redis

mkdir 9003  9004 9005

4 . 修改配置文件

cp /usr/local/redis3.0/redis.conf   /etc/redis/9000

cd /etc/redis/9000

mv redis.conf   9000.conf

vim  9000.conf    

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

port 9000

daemonize yes

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

bind 192.168.0.60

#若要设置密码,需要把requirepass前面的#号去掉,并设置它后面的密码以及masterauth

##修改完9000.conf配置文件中的这些配置后把这个配置文件分别拷贝到9001/9002/9003/9004/9005目录下面

cp  /etc/redis/9000.conf   /etc/redis/9001

cp  /etc/redis/9000.conf   /etc/redis/9002

scp  /etc/redis/9000.conf   [email protected]:/etc/redis/9003

scp  /etc/redis/9000.conf   [email protected]:/etc/redis/9004

scp  /etc/redis/9000.conf   [email protected]:/etc/redis/9005

#注意:拷贝完成后要修改9001/9002/9003/9004/9005下面redis配置文件中的port分别对应的文件夹的名称和bind参数(需要更新为物理接口IP 0.60或0.219)

同时需要在两台服务器的防火墙放开对应端口

5. 分别启动这6个redis实例

1) 192.168.0.60上

cd /etc/redis/9000

redis-server 9000.conf

cd /etc/redis/9001

redis-server 9001.conf

cd /etc/redis/9002

redis-server 9002.conf

2) 192.168.0.60上

cd /etc/redis/9003

redis-server 9003.conf

cd /etc/redis/9004

redis-server 9004.conf

cd /etc/redis/9005

redis-server 9005.conf

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

如下则说明成功

6.升级ruby安装gem

#yum install ruby ruby-devel rubygems rpm-build

检查ruby版本

#ruby -v

ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

是否安装rubygems

#rpm -qa | grep ruby

ruby-1.8.7.374-4.el6_6.x86_64

rubygems-1.3.7-5.el6.noarch

ruby-rdoc-1.8.7.374-4.el6_6.x86_64

ruby-devel-1.8.7.374-4.el6_6.x86_64

ruby-libs-1.8.7.374-4.el6_6.x86_64

ruby-irb-1.8.7.374-4.el6_6.x86_64

7. gem安装redis ruby接口

gem install redis

若报错,则可手动下载

wget http://rubygems.org/gems/redis/versions/3.0.0

gem install -l redis-3.0.0

8.执行redis的创建集群命令创建集群

# redis-trib.rd的create子命令创建

# --replicas则指定了为Redis Cluster中的每个Master节点配备了几个Slave节点

# 节点角色由顺序决定,先master之后是slave

创建方式

[root@mysqlslave src]#cd /usr/local/redis3.0/src

[root@mysqlslave src]# ./redis-trib.rb  create --replicas 1 192.168.0.60:9000 192.168.0.60:9001 192.168.0.60:9002 192.168.0.219:9003 192.168.0.219:9004 192.168.0.219:9005

>>> Creating cluster

Connecting to node 192.168.0.60:9000: OK

Connecting to node 192.168.0.60:9001: OK

Connecting to node 192.168.0.60:9002: OK

Connecting to node 192.168.0.219:9003: OK

Connecting to node 192.168.0.219:9004: OK

Connecting to node 192.168.0.219:9005: OK

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

Using 3 masters:

192.168.0.60:9000

192.168.0.219:9003

192.168.0.60:9001

Adding replica 192.168.0.219:9004 to 192.168.0.60:9000

Adding replica 192.168.0.60:9002 to 192.168.0.219:9003

Adding replica 192.168.0.219:9005 to 192.168.0.60:9001

M: d7728bfbd286f9387911fdb459fbb580f7189d80 192.168.0.60:9000

   slots:0-5460 (5461 slots) master

M: 9cd3cfcadd4f8f3c3aa9cc5fce21f58fd9d75016 192.168.0.60:9001

   slots:10923-16383 (5461 slots) master

S: 169353ccf9e9162819a937ec7fe248e5357f3d30 192.168.0.60:9002

   replicates 33857a90b7c53dfc30f3e5a2c66e4b220154a972

M: 33857a90b7c53dfc30f3e5a2c66e4b220154a972 192.168.0.219:9003

   slots:5461-10922 (5462 slots) master

S: 78b95af1ff6b6d1873056285274abf472dc82119 192.168.0.219:9004

   replicates d7728bfbd286f9387911fdb459fbb580f7189d80

S: 87b88def2e17278487b53482a51b46279fdd2d5b 192.168.0.219:9005

   replicates 9cd3cfcadd4f8f3c3aa9cc5fce21f58fd9d75016

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 192.168.0.60:9000)

M: d7728bfbd286f9387911fdb459fbb580f7189d80 192.168.0.60:9000

   slots:0-5460 (5461 slots) master

M: 9cd3cfcadd4f8f3c3aa9cc5fce21f58fd9d75016 192.168.0.60:9001

   slots:10923-16383 (5461 slots) master

M: 169353ccf9e9162819a937ec7fe248e5357f3d30 192.168.0.60:9002

   slots: (0 slots) master

   replicates 33857a90b7c53dfc30f3e5a2c66e4b220154a972

M: 33857a90b7c53dfc30f3e5a2c66e4b220154a972 192.168.0.219:9003

   slots:5461-10922 (5462 slots) master

M: 78b95af1ff6b6d1873056285274abf472dc82119 192.168.0.219:9004

   slots: (0 slots) master

   replicates d7728bfbd286f9387911fdb459fbb580f7189d80

M: 87b88def2e17278487b53482a51b46279fdd2d5b 192.168.0.219:9005

   slots: (0 slots) master

   replicates 9cd3cfcadd4f8f3c3aa9cc5fce21f58fd9d75016

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

 

二、测试篇

1)检查集群状态

[root@mysqlslave src]# ./redis-trib.rb check 192.168.0.60:9000

Connecting to node 192.168.0.60:9000: OK

Connecting to node 192.168.0.60:9002: OK

Connecting to node 192.168.0.219:9004: OK

Connecting to node 192.168.0.219:9005: OK

Connecting to node 192.168.0.60:9001: OK

Connecting to node 192.168.0.219:9003: OK

>>> Performing Cluster Check (using node 192.168.0.60:9000)

M: d7728bfbd286f9387911fdb459fbb580f7189d80 192.168.0.60:9000

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

S: 169353ccf9e9162819a937ec7fe248e5357f3d30 192.168.0.60:9002

   slots: (0 slots) slave

   replicates 33857a90b7c53dfc30f3e5a2c66e4b220154a972

S: 78b95af1ff6b6d1873056285274abf472dc82119 192.168.0.219:9004

   slots: (0 slots) slave

   replicates d7728bfbd286f9387911fdb459fbb580f7189d80

S: 87b88def2e17278487b53482a51b46279fdd2d5b 192.168.0.219:9005

   slots: (0 slots) slave

   replicates 9cd3cfcadd4f8f3c3aa9cc5fce21f58fd9d75016

M: 9cd3cfcadd4f8f3c3aa9cc5fce21f58fd9d75016 192.168.0.60:9001

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

M: 33857a90b7c53dfc30f3e5a2c66e4b220154a972 192.168.0.219:9003

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

 

2)测试redis集群

[root@mysqlslave src]# redis-cli -c -p 9000 -h 192.168.0.60

192.168.0.60:9000> set test ljp20151215

-> Redirected to slot [6918] located at 192.168.0.219:9003

OK

192.168.0.219:9003> get test    //直接转到0.219:9003

"ljp20151215"  //可以取到值

192.168.0.219:9003>

我们也可以到另一台电脑0.219上去。连接到0.219的9005. 可以取到test的值。

标签:0.219,redis,192.168,0.60,etc,3.0,slots,分布式
From: https://blog.51cto.com/u_13360482/6992538

相关文章

  • 深度学习框架 —— 分布式训练
    现在深度学习的模型结构越来越大,参数动不动都是上亿甚至上千亿,这也对训练模型的资源量有很高的要求,显然单个机器上要训练这么大的网络是不现实的,因此学术界和工业界自然开始研究用分布式训练。也就是将一个机器学习模型任务拆分成多个子任务,并将子任务分发给多个计算节点,解决资源......
  • 计讯物联3.0智慧灯杆网关TG473,创造智慧城市“数智”美好
    基于5G、物联网、智能传感、大数据、人工智能等新兴技术趋向于成熟,我国智慧城市规模发展迅速,并得到广泛的实施应用。除了技术层面,政策扶持对于智慧城市的建设也具有重大意义。今年的政府工作报告明确指出,要建设数字信息基础设施,推进5G规模化应用,促进产业数字化转型,发展智慧城市。......
  • redis
    dockerrun--namewltjzbjg_redis-p7001:6379-v/root/docker/redis/data:/data-v/root/docker/redis/conf/redis.conf:/etc/redis/redis.conf-dredisredis-server/etc/redis/redis.confdockerrun--namelmqredis-p6379:6379-v/root/docker/redis/data:/dat......
  • 【3.0】Vue之语法
    【一】插值语法<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><!--Vue文件--><scriptsrc="https://cdn.bootcdn.net/ajax/libs/vue/2.7.9/vu......
  • Redis概念
    1.数据淘汰策略-noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外)allkeys-lru:尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。volatile-lru:尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得......
  • 【2023.08.06】乐高Lego福运成双80110积木评测
    前言本人是自费购买积木,购买原因是给妹妹培养动手能力,减少短视频占用时间,其次是给家里做摆饰,所以选择积木多考虑了美观非专业评测,如果想看更多积木评测请点进我的博客主页分类查看正文这次的积木整体创意挺好的,斜着拼装红色和金色电镀件很好看,金色的电镀件颜色反射非常均匀......
  • Redis Pipeline管道技术
    1.什么是pipelinePipeline是Redis提供的一种批量请求机制,可以在client端对多条命令进行打包,然后一次性发送给服务器,避免了多次网络往返的开销。2.pipeline的优势为了解释pipeline的作用,我们先思考一个问题:如果客户端需要依次执行多条Redis命令,该如何处理?客户端一次执行一条......
  • Spring boot集成Redis
    在开发中,放到缓存中的数据我们都要给过期时间,使其可以在系统即使没有主动更新数据也能自动触发数据加载的流程,避免业务奔溃导致的数据永久不一致的问题1、引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-......
  • redis 如何解决缓存雪崩、击穿、穿透难题
    引言redis作为一门热门的缓存技术,引入了缓存层,就会有缓存异常的三个问题,分别是缓存击穿、缓存穿透、缓存雪崩。我们用本篇文章来讲解下如何解决!缓存击穿缓存击穿:指的是缓存中的某个热点数据过期了,但是此时大量的并发请求访问这个key的值,此时因为缓存过期无法从缓存中获取,直......
  • Redis 之分布式锁的实现
    引言分布式锁大家应该不陌生,在很多大厂面试的时候,面试官们都很喜欢问这个问题。我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失。在单服务器系统我们常用本地锁来避免并发带......