首页 / REDIS / Redis Cluster搭建
Redis Cluster搭建
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis Cluster搭建,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2917字,纯文字阅读大概需要5分钟。
内容图文
![Redis Cluster搭建](/upload/InfoBanner/zyjiaocheng/861/02dec4121b514fdb94bdb4c9032e42bf.jpg)
redis集群形式
数据分区方案
客户端分区
客户端分区方案的代表为Redis Sharding, Redis Sharding是Redis Cluster出来之前,业界普遍使用的Redis多实例集群方法。Java的Redis客户端驱动库Jedis,支持RedisSharding功能,即Shardedledis以及结合缓存池的ShardedJedisPool.
代理分区
代理分区常用方案有Twemproxy和Codis。
高可用方式
Sentinel哨兵
Sentinel哨兵机制支持高可用。
哨兵的作用就是监控Redis系统的运行情况。主要功能包括以下三个:
- 监控(Monitoring):.哨兵(sentinel)会不断地检查你的Master和Slave是否运作正常。
- 提醒(Notification):当被监控的某个Redis出现问题时,哨兵(sentinel)可以通过API向管理员或者其他应用程序发送通知
- 自动故障迁移(Automatic failover):当主数据库出现故障时自动将从数据库转换为主数据库。
Redis-cluster
Redis的官方多机部署方案,Redis Cluster。一组Redis Cluster是由多个Redis.实例组成,官方推荐我们使用6实例,其中3个为主节点,3个为从结点。一旦有主节点发生故障的时候,Redis Cluster可以选举出对应的从结点成为新的主节点,继续对外服务,从而保证服务的高可用性。那么对于客户端来说,知道知道对应的key是要路由到哪一个节点呢?Redis Cluster把所有的数据划分为16384个不同的槽位,可以根据机器的性能把不同的槽位分配给不同的Redis.实例,对于Redis.实例来说,他们只会存储部分的Redis数据,当然,槽的数据是可以迁移的,不同的实例之间,可以通过一定的协议,进行数据迁移。
redis cluster缺点:
- key批量操作支持有限
- key事务操作支持有限
- key作为数据分区的最小粒度
- 不能将一个大的键值对象如hash、list等映射到不同的节点
- 不支持多数据空间
- 复制结构只支持一层
- 命令大多会重定向
一致性hash:
一致性哈希可以很好的解决稳定性问题,可以将所有的存储节点排列在收尾相接的Hash环上,每个key在计算Hash后会顺时针找到临接的存储节点存放。而当有节点加入或退出时,仅影响该节点在Hash环上顺时针相邻的后续节点。
部署Cluster集群
创建6个redis节点
for port in $(seq 7001 7006); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF > /mydata/redis/node-${port}/conf/redis.conf
port ${port}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.1.48
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes
EOF
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d redis:5.0.7 redis-server /etc/redis/redis.conf; \
done
建立集群
docker exec -it redis-7001 /bin/bash
redis-cli --cluster create 192.168.1.48:7001 192.168.1.48:7002 192.168.1.48:7003 192.168.1.48:7004 192.168.1.48:7005 192.168.1.48:7006 --cluster-replicas 1
测试
redis-cli -c -h 192.168.1.48 -p 7001
set a1 a
set hello h
get a1
get hello
查看集群信息
cluster info
模拟主节点宕机
docker stop redis-7001
docker exec -it redis-7002 /bin/bash
redis-cli -c -h 192.168.1.48 -p 7002
cluster nodes
观察到:7001宕机了,但是7006主动变成master了。
现在主动恢复7001节点:
docker start redis-7001
观察节点:
cluster nodes
7001变成7006的slave了。
通过redis cluster可以做到节点的故障切换。
内容总结
以上是互联网集市为您收集整理的Redis Cluster搭建全部内容,希望文章能够帮你解决Redis Cluster搭建所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。