redis集群的搭建

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: redis集群的搭建 一.为什么使用redis? redis是一种典型的no-sql,工作在内存中,这就意味着它的读写效率是非常高的。所以大数据量的访问导致db的压力增大,所以为了业务的稳定,需要在db层上使用多级的redis提供缓冲区 二.为什么使用redis-cluster? redis是一个内存数据库,这就意味着单个redis数据库的容量不能超过服务器的内存。

redis集群的搭建

一.为什么使用redis?

redis是一种典型的no-sql,工作在内存中,这就意味着它的读写效率是非常高的。所以大数据量的访问导致db的压力增大,所以为了业务的稳定,需要在db层上使用多级的redis提供缓冲区

二.为什么使用redis-cluster?

redis是一个内存数据库,这就意味着单个redis数据库的容量不能超过服务器的内存。所以对于大数据量的应用,就需要将数据分散到多台机器上,redis3.0版本以上开始支持cluster 。

三.redis-cluster实现原理?

redis-cluster采用的是hash slot(hash槽)[0-16383]slot,把多个redis实例整合到一起,形成一个集群。redis-cluster是一个无中心的结构,每个节点都保存其它节点的状态和它负责的槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点
clipboard.png

四.redis的投票和容错

1.投票:

当一个节点发现某个节点ping-pong不通,就会向其它节点广播该节点可能发生的错误,所有节点对该节点进行检测,超过半数,则认为该节点挂掉

2.容错

容错采用主备策略,master挂掉,slave立即接替工作

3.什么时候整个集群不可用?

a.集群中任意master挂掉,且没有slave。集群进入fail状态
b.集群超过半数以上的master挂掉,无论是否有slave都进入fail状态

五.redis-cluster的搭建

集群中有三个节点的集群,每个节点有一主一备。需要6台虚拟机。
搭建一个伪分布式的集群,使用6个redis实例来模拟。

1.安装ruby环境

yum install ruby    //ruby运行环境
yum install rubygems  //ruby包管理器
将redis-3.0.0.gem上传到服务器(redis-trib.rb运行需要依赖的包)
gem installe redis-3.0.0.gem  (安装该依赖包)

2.搭建集群

(1)拷贝bin

mkdir redis-cluster           
cd redis
cp -r bin ../redis-cluster/redis01     //拷贝  

(2)配置文件修改

cd ../redis-cluster/redis01/
rm -f dump.rdb (删除快照文件)
vim redis.conf
    修改:
    port 7001
    cluster-enabled yes

(3)创建六个节点

cp -r redis01/ redis02  (一直改到6vim redis02/redis.conf  (分别改端口号)

(4)拷贝集群脚本到集群目录下

cd redis-3.0.0/src
cp *.rb /usr/local/redis-cluster/

(5)运行6个redis实例

vim startall.sh

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..


./startall.sh

(6)创建集群

./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006

六.测试集群

 
redis01/redis-cli -h 47.94.148.93 -p 7002 -c
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3天前
|
存储 NoSQL 算法
09- Redis分片集群中数据是怎么存储和读取的 ?
Redis分片集群使用哈希槽分区算法,包含16384个槽(0-16383)。数据存储时,通过CRC16算法对key计算并模16383,确定槽位,进而分配至对应节点。读取时,根据槽位找到相应节点直接操作。
73 12
|
3天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
382 0
|
3天前
|
负载均衡 监控 NoSQL
Redis的几种主要集群方案
【5月更文挑战第15天】Redis集群方案包括主从复制(基础,读写分离,手动故障恢复)、哨兵模式(自动高可用,自动故障转移)和Redis Cluster(官方分布式解决方案,自动分片、容错和扩展)。此外,还有Codis、Redisson和Twemproxy等工具用于代理分片和负载均衡。选择方案需考虑应用场景、数据量和并发需求,权衡可用性、性能和扩展性。
32 2
|
3天前
|
存储 监控 负载均衡
保证Redis的高可用性是一个涉及多个层面的任务,主要包括数据持久化、复制与故障转移、集群化部署等方面
【5月更文挑战第15天】保证Redis高可用性涉及数据持久化、复制与故障转移、集群化及优化策略。RDB和AOF是数据持久化方法,哨兵模式确保故障自动恢复。Redis Cluster实现分布式部署,提高负载均衡和容错性。其他措施包括身份认证、多线程、数据压缩和监控报警,以增强安全性和稳定性。通过综合配置与监控,可确保Redis服务的高效、可靠运行。
25 2
|
3天前
|
存储 NoSQL Redis
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群(下)
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群
19 1
|
3天前
|
监控 NoSQL Redis
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群(上)
Redis源码、面试指南(5)多机数据库、复制、哨兵、集群
34 0
|
3天前
|
存储 监控 NoSQL
Redis哨兵&分片集群
Redis哨兵&分片集群
20 0
|
3天前
|
NoSQL 算法 Java
深入浅出Redis(八):Redis的集群模式
深入浅出Redis(八):Redis的集群模式
|
3天前
|
NoSQL Redis
透视Redis集群:心跳检测如何维护高可用性
Redis心跳检测保障集群可靠性,通过PING命令检测主从连接状态,预防数据丢失。当连接异常时,自动触发主从切换。此外,心跳检测辅助实现`min-slaves-to-write`和`min-slaves-max-lag`策略,避免不安全写操作。还有重传机制,确保命令无丢失,维持数据一致性。合理配置心跳检测,能有效防止数据问题,提升Redis集群的高可用性。关注“软件求生”获取更多Redis知识!
134 10
透视Redis集群:心跳检测如何维护高可用性
|
3天前
|
监控 NoSQL 算法
Redis集群模式:高可用性与性能的完美结合!
小米探讨Redis集群模式,通过一致性哈希分散负载,主从节点确保高可用性。节点间健康检测、主备切换、数据复制与同步、分区策略和Majority选举机制保证服务可靠性。适合高可用性及性能需求场景,哨兵模式则适用于简单需求。一起学习技术的乐趣!关注小米微信公众号“软件求生”获取更多内容。
69 11
Redis集群模式:高可用性与性能的完美结合!