redis集群搭建

springboot整合redis集群

Deadly 提交于 2019-11-30 04:39:56
springboot整合redis集群 yls 2019-9-21 简介 在springboot使用搭建好的redis集群 添加redis和连接池依赖 <!--redis连接池 start--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <!--redis连接池 end--> <!--redis start--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--redis end--> 在配置文件中配置连接池和sentinel spring: redis: lettuce: pool: max-active: 8 max-idle: 8 max-wait: -1ms min-idle: 0 sentinel: master: mymaster nodes: 192.168.145.128:26379,192.168.145.128:26380,192.168.145.128:26381 创建redis服务

Redis集群增加节点和删除节点

江枫思渺然 提交于 2019-11-30 01:37:11
  本文主要是承接上一篇文章Redis集群的离线安装成功以后,我们如何进行给集群增加新的主从节点(集群扩容)以及如何从集群中删除节点(集群缩容),也就是集群的伸缩,集群伸缩的原理是控制虚拟槽和数据在节点之间进行移动,通过实际操作来整理一下集群的伸缩。   上篇文章中搭建好的集群为三主三从,端口号为7000、7001、7002、7003、7004、7005。   查看集群启动情况:ps -ef | grep redis 查看集群的slots分配情况以及节点之间的主从关系:   首先登陆节点7000:redis-cli -p 7000 -h 192.168.182.132 -c //注意不要丢了-c   cluster nodes 查看集群节点信息   在本例中我们先增加两个节点:主节点7006和从节点7007,并给7006分配4096个slots,设置7007为7006的从节点,然后再将这两个节点从集群中删除,一定要先删除主节点,再删除从节点,要不然故障转移会生效。   一、集群的扩容   1.准备新的节点     在集群目录redis_cluster目录下增加redis7006和redis7007目录     mkdir redis7006     mkdir redis7007     增加完成后的目录    复制端口7000的redis

Redis5的集群搭建

一个人想着一个人 提交于 2019-11-29 23:47:53
说道Redis,自然少不了集群。真实生产环境,一般使用都是集群,以应对巨大的缓存数据量。Java分布式技术体系中,使用集群的框架非常之多,但是往往在集群中的节点之间是互相同步数据的,也就是无论应用调用到哪个节点,产生的效果都是一样的。尤其是在我了解服务注册类框架的时候,节点之间的一致性更是硬性要求。 Redis集群给我印象较深的就是节点之间的数据是完全不需要同步的。首先来讲,集群没有Leader,之间的关系互相平等。那Redis集群是怎么存储数据的呢? 我们都知道Redis的数据格式都是key-value,类似于Java中的HashMap。不错,和HashMap的结构类似,Redis集群同样是用key生成出的Hash值来决定保存key-value这对键值的位置。 Redis集群的结构中共有哈希槽16384个,例如集群有三个节点,那这三个节点分配到的哈希槽分别为: node1: 0-5500, node2:5501-11000, node3:11001-16383。 也就是说当保存一对键值的时候,会根据key生成出来的值分配到这三个当中的一个。那么不免会有疑问当键值被保存到node2的情况下,但是我的应用只连接到node1,这个时候怎么处理呢? 应用使用key来获取value的时候,同样使用key来得到键值保存的位置,发现在node2节点后,会跳转到node2,

redis集群搭建及管理

一曲冷凌霜 提交于 2019-11-29 19:24:03
redis 集群 配置管理主机mgm57 1)部署ruby脚本运行环境 [root@mgm57 ~]#yum -y install rubygems [root@mgm57 ~]# which gem /usr/bin/gem [root@mgm57 ~]# ls *.gem redis-3.2.1.gem [root@mgm57 ~]# [root@mgm57 ~]# gem install redis-3.2.1.gem Successfully installed redis-3.2.1 Parsing documentation for redis-3.2.1 Installing ri documentation for redis-3.2.1 1 gem installed 2)创建管理集群脚本 [root@mgm57 ~]#mkdir /root/bin //创建命令检索目录 [root@mgm57 ~]#tar -zxvf redis-4.0.8.tar.gz [root@mgm57 ~]#cd redis-4.0.8/src/ [root@mgm57 ~]#cp redis-trib.rb /root/bin/ //创建管理集群脚本 [root@mgm57 ~]#chmod +x /root/bin/redis-trib.rb [root@mgm57 ~]

Redis实战(四) 集群机制

冷暖自知 提交于 2019-11-29 19:23:35
文章目录 Replication(主从复制) 1.1. 配置主服务器 1.2. 配置从服务器 1.3. 测试 Sentinel(哨兵) 2.1. 配置Sentinel 2.2. 启动 Sentinel 2.3. 测试 Twemproxy Codis Redis 3.0集群 5.1. 环境搭建 5.2. 创建集群 微信公众号 加入全国服务端技术社群「后端圈」(点击加入) <<< 下面介绍Redis的集群方案。 Replication(主从复制) Redis的replication机制允许slave从master那里通过网络传输拷贝到完整的数据备份,从而达到主从机制。为了实现主从复制,我们准备三个redis服务,依次命名为master,slave1,slave2。 配置主服务器 为了测试效果,我们先修改主服务器的配置文件redis.conf的端口信息 port 6300 配置从服务器 replication相关的配置比较简单,只需要把下面一行加到slave的配置文件中。你只需要把ip地址和端口号改一下。 slaveof 192.168.1.1 6379 我们先修改从服务器1的配置文件redis.conf的端口信息和从服务器配置。 port 6301 slaveof 127.0.0.1 6300 我们再修改从服务器2的配置文件redis.conf的端口信息和从服务器配置。 port

ZooKeeper架构原理你学会了吗?

烂漫一生 提交于 2019-11-29 18:27:09
Zookeeper是分布式一致性问题的工业解决方案,是Apache Hadoop下解决分布式一致性的一个组件,后被分离出来成为Apache的顶级项目。 工程来源:是雅虎公司内部项目,据说雅虎内部很多项目都是以动物命名,这个动物管理员的名字起的很是形象。 被开源出来后得到开源社区的快速推进,服务端Java语言实现,棒,git有3000+的star: https://github.com/apache/zookeeper zookeeper集群结构 集群的角色,比较典型的是Master/Slave(主备模式),zk中的概念跟这个不一样,包含Leader、Follower、Observer三个角色,leader提供读和写的能力,follower只对外提供读的能力。 会话(session) 客户端跟服务端交互,是先与服务端建立一个TCP长连接,会话开始,通过心跳检测与服务端保持会话有效,向服务端发送请求和接收响应。 zk将所有的数据都加载在内存一份,同时有事务日志文件(持久化文件),服务端会定时dump快照数据,重启机器的时候会根据快照和事务日志恢复内存数据库的数据,这跟redis的AOF和RDB概念类似。 zookeeper上的数据结构 zk上的数据的结构跟linux文件系统很像,是个树状结构 节点(node)上的信息字段 节点类型包括: 持久型节点 顺序持久型节点 临时节点

Redis集群

≯℡__Kan透↙ 提交于 2019-11-29 15:07:01
集群:多个服务器集中在一起 , 实现同一个业务 ,当一台服务器不能满足开发需求的时候,需要多台服务器的支持,这时就需要做集群,但是集群往往伴随着分布式. 分布式服务之间的相互通信:RPC方案,远程调用框架 分布式的缺点:事务和缓存的处理问题 集群和分布式概述 a) 分布式:将不同的业务分布在不同的服务器,web应用和 数据库服务分开 集群分类 a) 数据库集群,应用集群,功能集群,Tomcat集群 集群的两大特性 a) 可扩展性 i. 可以动态的添加新的服务器,增强集群的性能 b) 高可用性 i. 集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性,当访问的服务器挂了时,集群要有能力找可以正常使用额服务器继续提供服务器。 集群的两大能力 a) 负载均衡 i. 负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。 ii. 负载均衡的策略:轮询,权重,随机 b) 错误恢复 i. 由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。当访问的服务器挂了时

Redis06-Redis集群

最后都变了- 提交于 2019-11-29 12:37:36
Redis集群 介绍 1.单机、单实例的持久化方式 在我们之前的课程中,我搭建了一个单机,单进程,缓存redis。我们使用rdb,aof持久化,用来确保数据的安全。 rdb(relation-ship database)持久化: 默认redis会以一个rdb快照的形式,将一段时间内的数据持久化到硬盘,保存成一个dumpr.rdb二进制文件。 工作原理:当redis需要持久化时,redis会fork一个子进程,子进程将数据写到磁盘上临时一个RDB文件中。当子进程完成写临时文件后,将原来的RDB替换掉,这样的好处就是可以copy-on-write。 配置redis.conf: save 900 1 save 300 10 save 60 10000 在900秒内,如果有一个key被修改,则会发起快照保存。300秒之内,如果超过10个key被修改,则会发起快照保存。在60秒内,如果1w个key被修改,则会发起快照保存。 aof(append-only file)持久化: 默认会以一个appendonly.aof追加进硬盘。 redis.conf默认配置: appendfsync yes appendfdync always #每次有数据修改都会写入AOF appendfsync everysec #每秒同步一次,策略为AOF的缺省策略 2.单节点、单实例面临的问题: 单点故障 容量有限

redis集群--多哨兵模式搭建

大兔子大兔子 提交于 2019-11-29 11:38:08
本文目标 本文记录redis集群多哨兵的搭建和测试。 安装准备 centos版本:6.7 redis版本:3.2.3 安装方式:源码安装 操作步骤 6379为主节点,6389和6399为从节点; 26379,26479,26579为哨兵节点。 1、redis.conf配置 主的保持默认的不变 二个从的分别打开配置文件 找到设置端口的地方 分别设置为 6389 和6399 # Accept connections on the specified port, default is 6379 (IANA #815344). # If port 0 is specified Redis will not listen on a TCP socket. port 6389 # Accept connections on the specified port, default is 6379 (IANA #815344). # If port 0 is specified Redis will not listen on a TCP socket. port 6399 然后都在 # slaveof <masterip> <masterport> 一行的下面增加 slaveof 127.0.0.1 6379 这样主从的配置就ok了 2、sentinel.conf 分别打开sentinel

redis 集群搭建

*爱你&永不变心* 提交于 2019-11-29 06:41:29
1.创建redis-cluster文件夹,拷贝reids下的bin目录全部文件到redis-cluster文件夹下 cp -a redis/bin redis-cluster/redis01 2.编辑redis01下的redis.conf,修改端口为7001,设置cluster-enabled yes 3.拷贝redis01 =》redis02 =》redis03 04 05 06 并依次修改端口为7002-7006 4.安装ruby相关环境 yum install rubygems 5.安装rvm(ruby的管理工具,使用yum install ruby无法安装2.0以上的ruby) gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable find / -name rvm -print source /usr/local/rvm/scripts/rvm rvm install 2.4.1 redis requires ruby version 2.2.2的问题,以上命令来自 https: