redis集群搭建

mysql 集群 数据同步

旧街凉风 提交于 2020-03-07 14:34:32
mysql集群配置在网站负载均衡中是必不可少的; 首先说下我个人准备的负载均衡方式;   1、通过nginx方向代理来将服务器压力分散到各个服务器上;   2、每个服务器中代码逻辑一样;   3、通过使用redis缓存来保存内存中数据,使用redis同步功能来同步不同服务器内存中的数据;   4、在通过mysql的集群配置来实现数据库数据同步; 这里我整理了几种数据同步方式; 一:主从服务器同步;   顾名思义:主服务器负责数据的增删改查,从服务器负责同步数据;   主服务器建立二进制文件;每产生语句变化或磁盘变化写入日至;   从服务器读主服务二进制日至;将读到的日至转成从服务的relaylog,从服务读取relaylog同步主主服务器;   主服务器建立授权复制账号;   从服务器利用账号来监听主服务器;   步骤:   1、首先需要至少两台服务器,我这边118.xxx.xxx.1(主),118.xxx.xxx.2(从)两台服务器;两台搭建mysql方式不同,一台安装mysql,和mysql-server;一台通过直接安装mariadb方式;没什么影响;   2、主服务器修改/etc/my.cnf;     #在[mysqld]下添加,建立二进制日至 #server-id一般用服务器后一位 server-id=1 log-binary=mysql-bin #监听变化方式

从ELK到EFK

冷暖自知 提交于 2020-03-05 12:49:02
背景 作为中国最大的在线教育站点,目前沪江日志服务的用户包含沪江网校,交易,金融,CCtalk(直播平台) 等多个部门的多个产品的日志搜索分析业务,每日产生的各类日志有好十几种,每天处理约10亿条(1TB)日志,热数据保留最近7天数据,冷数据永久保存。 为什么做日志系统 首先,什么是日志? 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。 这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。 我认为,日志数据在以下几方面具有非常重要的作用: 数据查找:通过检索日志信息,定位相应的 bug ,找出解决方案 服务诊断:通过对日志信息进行统计、分析

构建Redis集群

只谈情不闲聊 提交于 2020-03-04 18:38:27
目录 环境准备 引子 特点 集群容错 redis.conf 配置 启动6个redis实例 创建集群 检查集群信息 环境准备 引子 前面的章节我们讲了主从复制以及哨兵,他们可以提高读的并发 但是单个master容量有限,数据达到一定程度会有瓶颈,这个时候可以通过水平扩展为多master-slave成为集群。 这个时候就出现了redis-cluster:他可以支撑多个master-slave,支持海量数据,实现高可用与高并发。 哨兵模式其实也是一种集群,他能够提高读请求的并发 但是容错方面可能会有一些问题,比如master同步数据给slave的时候,这其实是异步复制吧 这个时候master挂了,那么slave上的数据就没有master新,数据同步需要时间的,1-2秒的数据会丢失 master恢复并转换成slave后,新数据则丢失。 特点 每个节点知道彼此之间的关系,也会知道自己的角色,当然他们也会知道自己存在与一个集群环境中,他们彼此之间可以交互和通信,比如ping pong。那么这些关系都会保存到某个配置文件中,每个节点都有,这个我们在搭建的时候会做配置的。 客户端要和集群建立连接的话,只需要和其中一个建立关系就行。 某个节点挂了,也是通过超过半数的节点来进行的检测,客观下线后主从切换,和我们之前在哨兵模式中提到的是一个道理。 Redis中存在很多的插槽,又可以称之为槽节点

docker + redis Cluster集群搭建

烂漫一生 提交于 2020-03-03 02:16:26
简单介绍: 1.应用场景:主要是针对海量数据+高并发+高可用的场景 2.好处: 1)将数据自动切分到多个节点的能力。 2)当集群中的一部分节点失效或者无法进行通讯时, 仍然可以继续处理命令请求的能力,拥有自动故障转移的能力。 3.分区采用:虚拟槽分区 搭建: 1)准备节点。 2)节点握手。 3)分配槽。 准备节点: 创建redis dockerfile镜像文件 FROM ruby:2.5-alpine RUN sed -i ‘s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g’ /etc/apk/repositories && apk add gcc g++ libc-dev wget vim openssl-dev make linux-headers bash && rm -rf /var/cache/apk/* RUN wget https://rubygems.org/downloads/redis-4.0.2.gem && gem install -l ./redis-4.0.2.gem && rm -f redis-4.0.2.gem #通过选择更小的镜像,删除不必要文件清理不必要的安装缓存,从而瘦身镜像 #创建相关目录能够看到日志信息跟数据跟配置文件 RUN mkdir -p /usr/src/redis && mkdir -p

Redis Cluster 集群搭建

别等时光非礼了梦想. 提交于 2020-03-03 01:29:08
什么是 Redis-Cluster 为何要搭建 Redis 集群。 Redis 是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着 Redis 不适合存储大数据,适合存储大数据的是 Hadoop 生态系统的 Hbase 或者是 MogoDB 。 Redis 更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。 Redis 集群搭建的方式有多种,例如使用 客户端分片、 Twemproxy 、 Codis 等,但从 redis 3.0 之后版本支持 redis-cluster 集群 ,它是 Redis 官方提出的解决方案 , Redis-Cluster 采用无中心结构,每个节点保存数据和整个集群状态 , 每个节点都和其他所有节点连接。其 redis-cluster 架构图如下: 客户端与 redis 节点直连 , 不需要中间 proxy 层 . 客户端不需要连接集群所有节点连接集群中任何一个可用节点即可。 所有的 redis 节点彼此互联 ( PING-PONG 机制 ), 内部使用二进制协议优化传输速度和带宽 . 分布存储机制 - 槽 ( 1 ) redis-cluster 把所有的物理节点映射到 [0-16383]slot 上 ,cluster 负责维护 node<->slot<->value (2)Redis

redis集群cluster模式搭建

 ̄綄美尐妖づ 提交于 2020-03-03 01:28:50
实验服务器 :192.168.44.139 192.168.44.138 192.168.44.144 在 192.168.44.139上操作: 将redis的包上传的新建的目录newtouch 解压 tar -zxf redis-3.0.7.tar.gz 安装redis依赖的包 yum -y install gcc gcc-c++ make tcl cd到解压的redis的包里安装 make && make install 在opt下新建/opt/redis/redis-cluster/ mkdir -p /opt/redis/redis-cluster/ 将redis.conf cp到/opt/redis/redis-cluster/ 起名redis-6379.conf redis-6380.conf cp /newtouch/redis-3.0.7/redis.conf /opt/redis/redis-cluster/redis-6379.conf cp /newtouch/redis-3.0.7/redis.conf /opt/redis/redis-cluster/redis-6380.conf 编辑redis-6379.conf redis-6380.conf bind 127.0.0.1 // 修改为当前服务器IP地址 port 6379 // 修改对应的端口

cas单点登录集群如何优雅的退出

时光毁灭记忆、已成空白 提交于 2020-03-02 12:32:11
实现cas ticket基于redis的集群 目的 克服cas单点故障,将cas认证请求分发到多台cas服务器上,降低负载。 实现思路: 采用统一的ticket存取策略,所有ticket的操作都从中央缓存redis中存取。 采用session共享,session的存取都从中央缓存redis中存取。 前提: 这里只讲解如何实现cas ticket的共享,关于session的共享请移步: https://github.com/izerui/tomcat-redis-session-manager 实现步骤: 基于cas源码 新增模块 cas-server-integration-redis pom.xml 文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>cas-server</artifactId>

Docker实战之Redis-Cluster集群

心不动则不痛 提交于 2020-03-01 19:50:38
概述 接上一篇 Docker实战之MySQL主从复制 , 这里是Docker实战系列的第二篇,主要进行Redis-Cluster集群环境的快速搭建。Redis作为基于键值对的NoSQL数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时Redis本身非常稳定,已经得到业界的广泛认可和使用。 在Redis中,集群的解决方案有三种 主从复制 哨兵机制 Cluster Redis Cluster是Redis的分布式解决方案,在 3.0 版本正式推出。 集群方案的对比 1. 主从复制 同Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,读写分离。一个Master可以有多个Slaves。 优点 数据备份 读写分离,提高服务器性能 缺点 不能自动故障恢复,RedisHA系统(需要开发) 无法实现动态扩容 2. 哨兵机制 Redis Sentinel是社区版本推出的原生 高可用 解决方案,其部署架构主要包括两部分:Redis Sentinel集群和Redis数据集群。 其中Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现、故障自动转移、配置中心和客户端通知。Redis Sentinel的节点数量要满足2n+1(n>=1)的奇数个。 优点

windows 10 下搭建redis集群

落花浮王杯 提交于 2020-02-29 18:08:57
  1.准备工作     软件打包下载地址         链接: https://pan.baidu.com/s/17AMdOcBA8OX1UfSX-TkFQA       提取码:eqf1     1.1 redis windows 下的环境软件 下载地址 https://github.com/MicrosoftArchive/redis/releases     这里下载下面的两个文件     1.2 安装Ruby            Redis 的集群是用Ruby脚本编写,所以系统需要有 Ruby 环境。       下载地址: https://www.jb51.net/jiaoben/141880.html       安装,下面红框标记的地方必选。              使用命令行,出现版本号表示安装成功            1.3 安装redis的ruby驱动rubygems              下载地址 https://www.jb51.net/softs/539242.html    2.准备工作       2.1 将下载的redis客户端分别负责几份,最少要6个              2.2 修改 redis.windows.conf 文件下的配置            需要修改的配置信息如下:       port 6380

Redis高可用集群搭建

我怕爱的太早我们不能终老 提交于 2020-02-29 14:17:28
redis 安装 下载地址:http://redis.io/download 安装步骤: # 安装gcc yum install gcc # 把下载好的redis‐5.0.2.tar.gz放在/usr/local文件夹下,并解压 wget http://download.redis.io/releases/redis‐5.0.2.tar.gz tar xzf redis‐5.0.2.tar.gz cd redis‐5.0.2 # 进入到解压好的redis‐5.0.2目录下,进行编译与安装 make # 启动并指定配置文件 src/redis‐server redis.conf(注意要使用后台启动,所以修改redis.conf里的daemonize改为yes) # 验证启动是否成功 ps ‐ef | grep redis # 进入redis客户端 /usr/local/redis/bin/redis‐cli # 退出客户端 quit # 退出redis服务: 1)pkill redis‐server 2)kill 进程号 3)src/redis‐cli shutdown redis集群搭建 redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共 6个redis节点,这里用三台机器部署6个redis实例