槽道原理 创建三个主节点,最终各有一个从节点的redis-cluster 的分布式高可用结构,现在各个节点之间两两互联,三个 主节点分配的槽道数分别为A(05460)B(546110922) C(10923
为什么要用redis-cluster 1.并发问题 redis官方生成可以达到 10万/每秒,每秒执行10万条命令 假如业务需要每秒100万的命令执行呢? 哈希分区(redis-cluster用的是哈希分区) 节点取余 ? 安装方式 官方提供通过ruby语言的脚本一键安装 1.环境准备 通过配置,开启redis-cluster port 7000 daemonize yes dir "/opt/redis/data" logfile redis-trib.rb命令 [root@yugo /opt/redis/src 18:38:13]#cp /opt/redis/src/redis-trib.rb /usr/local/bin/ 一键开启redis-cluster
安装 helm install redis-cluster bitnami/redis-cluster -ndev 查看 k get po,pvc,pv -ndev ? 查看用户密码和测试 export REDIS_PASSWORD=$(kubectl get secret --namespace dev redis-cluster -o jsonpath="{.data.redis-password redis-cluster-client --rm --tty -i --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis-cluster k8s添加nfs动态绑定存储(dynamic provisioning)nfs-server-provisioner 查看redis chart https://bitnami.com/stack/redis-cluster
创建redis-cluster节点 修改redis.conf将有关cluster的配置放出来即可通过redis-server (配置文件)以动redis-cluster节点,但是一个一个启动蛮累的 所以直接使用
今天简单介绍一下redis-cluster集群搭建。 cluster-enabled yes #后台启动,否则ctrl+c redis直接退出了 daemonize yes # 关闭保护模式 protected-mode no #指定数据目录 dir /usr/local/redis-cluster port 6380 dir /usr/local/redis-cluster/6380/ 接下来启动这两个实例: redis-server redis.conf redis-server redis-slave.conf
本文内容包括: redis-cluster介绍 redis-cluster搭建的详细步骤 redis-cluster增删node 一、redis-cluster介绍 1、有了哨兵为什么还要搞redis-cluster 如果对写操作并发很高,那可能就撑不住了,因此redis-cluster诞生。 2、redis-cluster机制: redis-cluster引入了一个哈希槽(slot)的概念,让数据与哈希槽关联,哈希槽再与节点关联。这样做的好处就是方便集群节点的增加或删除。 redis-cluster中固定有16384个哈希槽,假如redis-cluster中有6个redis实例,3个master,每个master带1个(没有固定是1个,可以是N个)slave,比如3个master redis-cluster/redis-conf/7004/redis.conf /opt/redis-cluster/redis-server/src/redis-server /opt/redis-cluster
cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done 3、创建容器 # 安装redis-cluster
redis-cluster实战 环境 192.168.10.45 192.168.10.46 192.168.10.47 安装过程记录 install redis @all cd /opt wget http redis-4.0.1.tar.gz cd redis-4.0.1 make config and start node @192.168.10.45 mkdir /opt/redis-4.0.1/redis-cluster cd /opt/redis-4.0.1/redis-cluster mkdir 7000 7001 7002 cat > 7000/redis.conf << EOF port 7000 bind cd /opt/redis-4.0.1/redis-cluster mkdir 7003 7004 7005 cat > 7003/redis.conf << EOF port 7003 bind cd /opt/redis-4.0.1/redis-cluster mkdir 7006 7007 7008 cat > 7006/redis.conf << EOF port 7006 bind
可以看到,在没存入数据前,几乎不占用多少内存,所以测试搭建在一台1核1G的服务也是没什么压力的
23394754 (1).前置阅读 需要先行部署grafana/prometheus,以及合理拓扑,参见: grafana&prometheus生产级容器化监控-1:生产级容器化 (2).前置准备 容器化redis-cluster github.com/hepyu/k8s-app-config/tree/master/yaml/min-cluster-allinone/redis-cluster-min 参考文章: kubernetes-20:redis-cluster (4).使用redis-exporter监控redis-cluster实例 1.镜像选择 镜像:image: oliver006/redis_exporter:v0.28.0 容器化配置位于: https ' orgId: 1 folder: 'redis-cluster' folderUid: '' type: file options: path: /var/lib/grafana/k8s-app-config (8).相关文章 grafana&prometheus生产级容器化监控-1:生产级容器化 kubernetes-20:redis-cluster容器化
使用 redis-shake 迁移 redis-cluster 背景: IDC上云, 有2套redis-cluster需要迁移到云上。 这里我们使用 redis-shake 来做迁移操作。 迁移前, redis-cluster 我们先造点数据进去到机房集群去。
目录: (1).redis容器化 1.容器化redis-cluster各个节点实例 2.初始化redis-cluster集群 3.集群节点文件说明 3.1.appendonly.aof 3.2.dump.rdb blob/master/yaml/init.sh 执行命令容器化redis-cluster:sh . 2.初始化redis-cluster集群 我们再开一个容器进行此项操作,为此我专门制作了一个image专门用于进行redis-cluster初始化,工程位于: https://github.com/hepyu 笔者曾经工作的一家公司,有同学用keys,直接把redis-cluster生产集群的tps干到<1。 由于nodes.conf是由redis-cluster集群维护,所以当这个节点实例启动时,redis-cluster也会将nodes.conf的本地修改同步到当前集群内的其他redis节点的nodes.conf
redis架构演变与redis-cluster群集读写方案 导言 redis-cluster是近年来redis架构不断改进中的相对较好的redis高可用方案。 再通过官方文档以及互联网的相关技术文档,给出redis-cluster架构下的读写能力的优化方案,包括官方的推荐的扩展redis-cluster下的Master数量以及非官方默认的redis-cluster 采用redis-cluster架构正是满足这种分布式存储要求的集群的一种体现。redis-cluster架构中,被设计成共有16384个hash slot。 Java中对redis-cluster数据的一般读取方法简介 使用Jedis读写redis-cluster的数据 由于Jedis类一般只能对一台redis-master进行数据操作,所以面对redis-cluster 但同时,该方案也有缺点: (1)非官方对redis-cluster的推荐方案,因为在redis-cluster架构下,进行读写分离,有可能会读到过期的数据。
欢迎来到我的博客,代码的世界里,每一行都是一个故事 Redis-Cluster 与 Redis 集群的技术大比拼 前言 在分布式数据库的世界中,Redis-Cluster 和传统 Redis 概念与原理对比 Redis-Cluster:基于哈希槽的分布式解决方案 Redis-Cluster采用了一种先进的分布式数据分片方式,即通过哈希槽(Hash Slot)将整个数据集划分为16384个槽。 管理与维护的不同之处 故障处理:Redis-Cluster 的故障转移机制与传统 Redis 集群的对比 Redis-Cluster 故障处理: 在Redis-Cluster中,当一个主节点发生故障时, 动态扩缩容:Redis-Cluster 如何动态添加或移除节点,与传统集群的对比 Redis-Cluster 动态扩缩容: 在Redis-Cluster中,可以通过向集群添加新节点或从集群中移除节点来实现动态扩缩容 性能优化的异同 数据分布算法:Redis-Cluster 中的哈希槽算法与传统集群的数据分片对比 Redis-Cluster 数据分布算法: 在Redis-Cluster中,数据的分布是通过哈希槽(Hash
和事务无法跨节点使用 客户端维护更复杂:SDK和应用本身消耗(例如更多的连接池) 很多场景Redis Sentinel已经够用了 参考 https://www.slideshare.net/iammutex/redis-cluster https://zhuanlan.zhihu.com/p/105569485 https://sunweiguo.github.io/2019/02/01/redis/Redis-Cluster%E7%
redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单、便捷、实用的操作工具。redis-trib.rb是redis作者用ruby完成的。
三、redis安装配置 3.1、创建目录 主机:172.30.3.231 mkdir -p /work/redis-cluster/redis-node1/{bin,data,conf,logs} mkdir -p /work/redis-cluster/redis-node2/{bin,data,conf,logs} 主机:172.30.3.234 mkdir -p /work/redis-cluster mkdir -p /work/redis-cluster/redis-node5/{bin,data,conf,logs} mkdir -p /work/redis-cluster/redis-node6 /{bin,data,conf,logs} 3.2、编辑启动脚本 主机:172.30.3.231 vim /work/redis-cluster/redis-node1/bin/start.sh 内容 \ -v /work/redis-cluster/redis-node1/logs:/var/log/redis \ --log-opt max-size=10m \
转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154 ---- 由于演讲时间有限,有关Redis-Cluster,演讲者没做太多介绍,简单的介绍了一些Redis-Cluster 但是讲演者反复强调,不要听信网上对于Redis-Cluster的毁谤(实践出真知),对于这一点我很赞同,我们从Redis-Cluster beta版 RC1~4 到现在的3.0-release均没有遇到什么大问题 一、Redis-Cluster 有关Redis-Cluster的详细介绍有很多这里就不多说了,可以参考: 1. redis-cluster研究和使用 2. Redis-Cluster无底洞问题解析。 4. 两个Redis-Cluster集群,meet操作问题后的恶果。 5. Redis-Cluster配置之full converage问题。 6. Redis-Cluster故障转移测试。 7. Redis-Cluster常用运维技巧。 8. Redis-Cluster一键开通。 9. Redis-Cluster客户端jedis详解。
mkdir -p /var/redis-cluster/data/7001 mkdir -p /var/redis-cluster/log/7001 mkdir -p /var/redis-cluster mkdir -p /var/redis-cluster/data/7003 mkdir -p /var/redis-cluster/log/7003 mkdir -p /var/redis-cluster /redis-cluster/data/7005 mkdir -p /var/redis-cluster/log/7005 mkdir -p /var/redis-cluster/data/7006 mkdir /etc/redis-cluster/7003.conf cp /etc/redis-cluster/7001.conf /etc/redis-cluster/7004.conf sed -i "s/ redis-cluster/7001.conf /etc/redis-cluster/7006.conf sed -i "s/7001/7005/g" /etc/redis-cluster/7005.conf
]# mkdir redis-cluster [root@zutuanxue redis]# cd redis-cluster/ [root@zutuanxue redis-cluster]# mkdir 7001 [root@zutuanxue redis-cluster]# mkdir 7002 [root@zutuanxue redis-cluster]# mkdir 7003 [root@zutuanxue redis-cluster]# mkdir 7004 [root@zutuanxue redis-cluster]# mkdir 7005 [root@zutuanxue redis-cluster] redis-cluster]# cd .. redis-cluster]# vim ./7008/redis.conf [root@zutuanxue redis-cluster]# cd ..