redis集群搭建

docker-compose搭建redis集群

ⅰ亾dé卋堺 提交于 2019-12-01 22:47:33
Dockerfile文件: FROM redis COPY redis.conf /redis/redis.conf RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone RUN chmod 777 /redis/redis.conf EXPOSE 6381 EXPOSE 16381 CMD [ "redis-server", "/redis/redis.conf" ] docker-compose.yml文件: version: '2' services: redis-slave1: build: ./slave1 ports: - 6381:6381 - 16381:16381 network_mode: "host" restart: always redis-slave2: build: ./slave2 ports: - 6382:6382 - 16382:16382 network_mode: "host" restart: always 来源: https://www.cnblogs.com/mybxy/p/11719586.html

支撑微博亿级社交平台,小白也能玩转Redis集群(实战篇)

家住魔仙堡 提交于 2019-12-01 21:40:48
上篇文章《支撑微博亿级社交平台,小白也能玩转Redis集群(原理篇)》介绍了Redis集群相关原理,这篇文章将介绍Redis Cluster集群的搭建、配置,运维、扩容等具体操作 集群搭建 2018年10月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是集群管理工具从基于Ruby的redis-trib.rb移植到基于C语言redis-cli中,方便集群的构建和管理 Redis Cluster集群运行至少需要包含3个主节点,实现高可用最少需要3主3从6个节点 以下步骤基于Redis 5.0.5版本,介绍如何在一台 Linux 服务器上搭建有3主3从的6节点的 Redis集群 步骤1 创建安装目录 mkdir -p /data/project/redis-cluster 步骤2 下载源码并解压编译 cd /data/project/redis-cluster wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar xzf redis-5.0.5.tar.gz cd redis-5.0.5 make 执行make后,如果报错“jemalloc/jemalloc.h:没有那个文件或目录”,可以改为用以下命令: make MALLOC=libc 步骤3 创建6个Redis配置文件

SpringBoot系列教程之Redis集群环境配置

有些话、适合烂在心里 提交于 2019-12-01 19:00:43
之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和单机的有什么区别,又有什么需要注意的呢? 本篇将主要介绍SpringBoot项目整合redis集群,并针对这个过程中出现的问题进行说明,并给出相应的解决方案 <!-- more --> I. 环境相关 首先需要安装redis集群环境,可以参考博文: redis-集群搭建手册 然后初始化springboot项目,对应的pom结构如下 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.7</version> <relativePath/> <!-- lookup parent from update --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting

[转]从零开始-在windows搭建redis-cluster集群--[带自己全部源码和全部项目文件,亲测可用]

限于喜欢 提交于 2019-12-01 16:06:49
一 所需软件:Redis、Ruby语言运行环境、Redis的Ruby驱动redis-xxxx.gem、创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址 https://github.com/MSOpenTech/redis/releases ; 下载Redis-x64-3.2.100.zip。 集群规划有三个节点的集群,每个节点有一主一备。需要6台虚拟机。 把 redis 解压后,再复制出 5 份,配置 三主三从集群。 由于 redis 默认端口号为 6379,那么其它5份的端口可以为6380,6381,6382,6383,6384。 并且把目录使用端口号命名 打开目录6379下有一个文件 redis.windows.conf,修改里面的端口号,以及集群支持配置。 修改其他配置支持集群 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 15000 appendonly yes 如果cluster-enabled 不为yes, 那么在使用JedisCluster集群代码获取的时候,会报错。 cluster-node-timeout 调整为 15000,那么在创建集群的时候,不会超时。 cluster-config-file nodes

手动搭建redis cluster

心不动则不痛 提交于 2019-12-01 15:17:25
集群中至少应该有奇数个节点,所以至少有三个节点,每个节点至少有一个备份节点,所以下面使用6节点(主节点、备份节点由redis-cluster集群确定) 1、安装redis节点指定端口 解压redis压缩包,编译安装 [root@localhost redis-3.2.0]# tar xzf redis-3.2.0.tar.gz [root@localhost redis-3.2.0]# cd redis-3.2.0 [root@localhost redis-3.2.0]# make [root@localhost redis01]# make install PREFIX=/usr/andy/redis-cluster   在redis-cluster下 修改bin文件夹为redis01,复制redis.conf配置文件 创建目录redis-cluster并在此目录下再创建7003 7004 7005 7006 7007 7008共6个目录,在7000中创建配置文件redis.conf,内容如下: daemonize yes #后台启动 port 7001 #修改端口号,从7001到7006 cluster-enabled yes #开启cluster,去掉注释 cluster-config-file nodes.conf #自动生成 cluster-node-timeout

【高级架构师实战】Spring Cloud微服务大型电商架构亿级流(免费不加密)

我的梦境 提交于 2019-12-01 07:24:15
第一版 001. 课程介绍以及高并发高可用复杂系统中的缓存架构有哪些东西? 002. 基于大型电商网站中的商品详情页系统贯穿的授课思路介绍 003. 小型电商网站的商品详情页的页面静态化架构以及其缺陷 004. 大型电商网站的异步多级缓存构建+nginx数据本地化动态渲染的架构 005. 能够支撑高并发+高可用+海量数据+备份恢复的redis的重要性 006. 从零开始在虚拟机中一步一步搭建一个4个节点的CentOS集群 007. 单机版redis的安装以及redis生产环境启动方案 008. redis持久化机对于生产环境中的灾难恢复的意义 009. 图解分析redis的RDB和AOF两种持久化机制的工作原理 010. redis的RDB和AOF两种持久化机制的优劣势对比 011. redis的RDB持久化配置以及数据恢复实验 012. redis的AOF持久化深入讲解各种操作和相关实验 013. 在项目中部署redis企业级数据备份方案以及各种踩坑的数据恢复容灾演练 014. redis如何通过读写分离来承载读请求QPS超过10万+? 015. redis replication以及master持久化对主从架构的安全意义 016. redis主从复制原理、断点续传、无磁盘化复制、过期key处理 017. redis replication的完整流运行程和原理的再次深入剖析

redis搭建集群

孤者浪人 提交于 2019-12-01 07:23:28
1 Redis集群 1.1 redis-cluster架构图 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中 超过半数的节点检测 失效时才生效. (3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可 (4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点 示例如下: 1.2 redis-cluster投票:容错 (1)集群中所有master参与投票,如果半数以上master节点与其中一个master节点通信超过(cluster-node-timeout),认为该master节点挂掉. (2):什么时候整个集群不可用(cluster_state:fail)? 如果集群任意master挂掉

redis内存满了怎么办?

喜你入骨 提交于 2019-12-01 07:22:56
redis最为缓存数据库,一般用于存储缓存数据,用于缓解数据库压力,但是缓存太多,内存满了怎么办呢。一般有以下几种方法 一、增加内存   redis存储于内存中,数据太多,占用太多内存,那么增加内存就是最直接的方法,但是这个方法一般不采用,因为内存满了就加内存,满了就加,那代价也太大,相当于用钱解决问题,不首先考虑,一般所有方面都做到最优化,才考虑此方法 二、搭建Redis集群 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中 超过半数的节点检测 失效时才生效. (3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可 (4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点 最多16384个节点,

基于SOA的高并发和高可用分布式系统架构和组件详解

瘦欲@ 提交于 2019-12-01 07:02:41
基于SOA的分布式高可用架构和微服务架构,是时下如日中天的互联网企业级系统开发架构选择方案。在核心思想上,两者都主张对系统的横向细分和扩展,按不同的业务功能模块来对系统进行分割并且使用一定的手段实现服务之间的通信,并且基于弹性云服务搭建高可用的分布式解决方案。 但它们之间的区别可能比相似的地方要多,特别是体现在对服务的使用和与云服务的深度结合上。在具体实践中,微服务的架构也可以与其它互联网中间件组合在一起,组成规模更为庞大的SOA分布式系统。本文主要对一个典型的SOA分布式应用的架构和组件做详细的说明。 企业级系统架构的演变 单体式 单体架构即所有系统功能和模块基于MVC的设计模式耦合在一个单体服务器单元中。基于传统的MVC思想,单体应用基于前后端分离的原则,通过Model、Control和View共同来完成一个特点的服务请求。这种传统的架构模式带了了多人团队合作、代码更新和维护、持续部署方面的困难,更重要的是,这种架构无法支持互联网行业对高并发的需求。下图为一个典型商城应用的单体架构及其SSM实现架构: 关于单体式应用的更多资料,可参看: JavaWeb开发之详解Servlet及Servlet容器 基于SSM的Java Web应用开发原理初探 集群 至少在高并发的需求上,单体应用的缺陷是行业所无法忍受的, 那如何提升并发性能呢?一个直接的思路是,把单体应用变成多体,变成集群

对单机架构升级集群架构的工作记录

一笑奈何 提交于 2019-12-01 06:47:29
概述 还有公司敢用单机模式架构,狠狠的擦了一把汗。。在此萌生了改造单机架构模式,自行网上搜索出一套适合公司的高可用架构,才大致了解完毕。领导就召集大家说了现有单机模式的弊端。。 领导是火眼金睛吗? 好吧,该我低调的卖弄了。。 现有架构 就问你们看到可不可怕(因为DB已经做了集群,此处就没画出来)。。。 任何一个节点挂掉,整个生产线就挂了,下面一一道来为什么那么说: 1. Nginx单点架构,一旦当前nginx挂掉,将致使外部用户无法使用访问应用 2. Tomcat:service-mix采用的1:1 访问,容易导致tomcat可以正常访问但下游服务挂掉,应用仍然请求到当前tomcat,但是无法提供服务 3. Redis单点使用,某一台挂掉,就会导致相应功能失效 架构优化 整体解析: keepalived和nginx放在同一台机器中,用于完成vip漂移 nginx采用的主备,备机使用的虚线连接,当主机挂掉了,备机对应的虚线才会生效 架构设计自下而上方案解析: 1. 将现有session共享和业务两个Redis实例合二为一,redis采用主从集群模式。 2. Servicemix采用集群方案,tomcat请求nginx,nginx对servicemix进行请求分发。 3. Tomcat请求keepalived VIP,路由到nginx,完成对servicemix的请求 4.