redis集群搭建

redis概念及安装部署

亡梦爱人 提交于 2020-01-11 01:07:05
第1章 Redis介绍 1.1 Redis是什么 Redis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有string,hash,list,set,zset,geo等多种数据结构和算法组成. 因为Redis会将所有的数据都放在内存中,所以他的读写性能非常惊人. 不仅如此,Redis还可以将内存中的数据利用快照和日志的形式保存到硬盘上 Redis还提供了键过期,发布订阅,事务,流水线等附加功能. 1.2 Redis重要特性 1.速度快 Redis所有的数据都存放在内存中 Redis使用C语言实现 Redis使用单线程架构 2.基于键值对的数据结构服务器 5中数据结构:字符串,哈希,列表,集合,有序集合 3.丰富的功能 提供了键过期功能,可以实现缓存 提供了发布订阅功能,可以实现消息系统 提供了pipeline功能,客户端可以将一批命令一次性传到Redis,减少了网络开销 4.简单稳定 源码很少,3.0版本以后5万行左右. 使用单线程模型法,是的Redis服务端处理模型变得简单. 不依赖操作系统的中的类库 5.客户端语言多 java,PHP,python,C,C++,Nodejs等 6.持久化 RDB和AOF 7.主从复制 8.高可用和分布式 哨兵 集群 1.3 Redis应用场景 1.缓存-键过期时间 缓存session会话 缓存用户信息

redis内置集群通信机制

廉价感情. 提交于 2020-01-10 03:56:17
你能聊聊redis cluster集群模式的原理吗? 1、面试题redis集群模式的工作原理能说一下么?在集群模式下,redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗? 2、面试官心理分析 在以前,如果前几年的时候,一般来说,redis如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有。有一些redis中间件,你读写redis中间件,redis中间件负责将你的数据分布式存储在多台机器上的redis实例中。这两年,redis不断在发展,redis也不断的有新的版本,redis cluster,redis集群模式,你可以做到在多台机器上,部署多个redis实例,每个实例存储一部分的数据,同时每个redis实例可以挂redis从实例,自动确保说,如果redis主实例挂了,会自动切换到redis从实例顶上来。现在redis的新版本,大家都是用redis cluster的,也就是redis原生支持的redis集群模式,那么面试官肯定会就redis cluster对你来个几连炮。要是你没用过redis cluster,正常,以前很多人用codis之类的客户端来支持集群,但是起码你得研究一下redis cluster吧。 redis如何在保持读写分离+高可用的架构下,还能横向扩容支持1T+的海量数据

redis(一):搭建redis高可用集群

本秂侑毒 提交于 2020-01-09 23:46:31
一. 搭建环境 操作系统:CentOS7 内存:2GB 核心数:单核 redis版本:5.0.7 集群结构:3主3从 二. redis安装 # 解压redis tar - xzvf redis - 5 . 0 . 7 . tar . gz cd redis - 5 . 0 . 7 # 编译并且安装 make && make install # 启动redis,查看是否安装成功 / usr / local / bin / redis - server / usr / local / src / redis - 5 . 0 . 7 / redis . conf # 客户端连接 / usr / local / bin / redis - cli - h 127 . 0 . 0 . 1 三. 集群搭建 我们这里只使用了一台机器搭建了一个伪集群,条件允许的话可以采用6台服务器搭建 在/opt目录下,当然也可以自己定义目录,创建6个文件夹,用来启动6个redis应用 cd / opt mkdir myredis cd myredis mkdir redis7000 mkdir redis7001 mkdir redis7002 mkdir redis7003 mkdir redis7004 mkdir redis7005 拷贝一份redis.conf到redis7000目录下 cp / usr

Redis

ε祈祈猫儿з 提交于 2020-01-09 22:31:56
11、redis(Master-Replicaset) ***** 11.1 原理: 副本库通过slaveof 10.0.0.51 6379命令,连接主库,并发送SYNC给主库 主库收到SYNC,会立即触发BGSAVE,后台保存RDB,发送给副本库 副本库接收后会应用RDB快照 主库会陆续将中间产生的新的操作,保存并发送给副本库 到此,我们主复制集就正常工作了 再此以后,主库只要发生新的操作,都会以命令传播的形式自动发送给副本库. 所有复制相关信息,从info信息中都可以查到.即使重启任何节点,他的主从关系依然都在. 如果发生主从关系断开时,从库数据没有任何损坏,在下次重连之后,从库发送PSYNC给主库 主库只会将从库缺失部分的数据同步给从库应用,达到快速恢复主从的目的 11.2 主从数据一致性保证 min-slaves-to-write 1 min-slaves-max-lag 3 11.3 主库是否要开启持久化? 如果不开有可能,主库重启操作,造成所有主从数据丢失! 主从复制实现 1、环境: 准备两个或两个以上redis实例 mkdir /data/638{0..2} 配置文件示例: cat >> /data/6380/redis.conf <<EOF port 6380 daemonize yes pidfile /data/6380/redis.pid loglevel

redis集群(Sentinel)

会有一股神秘感。 提交于 2020-01-07 04:13:26
问题 Redis 主哨兵模式是如何保证高可用的 主要依赖主哨兵的发现故障和故障转移 概述 本文假设读者对redis 的主从复制已经进行了了解 。 Redis 主哨兵集群为Redis 提供了 高可用 ,即高可用是猪哨兵模式的主要目的,这是宏观上Sentinel功能的完整列表 Monitoring :监视实例的情况 Notification : 通知 Automatic failover : 当Master异常下线后,自动会通过选举 Configuration provider : 提供配置信息。 注意事项 在配置哨兵模式下几件事需要注意 : 至少保证3台实例 由于Redis使用异步复制,因此Sentinel + Redis分布式系统不能保证在故障期间保留已确认的写入。 开启 Sentinel后,客户端也需要支持 Sentinel 模式 工作流程 分布式服务器布局 主哨兵的可以是如下布局 这是最简单的布局,Sentinel 依附在实例中,当实例 down 的话,那么 Sentinel 自然也会 down 掉,而图中的 quorum = 2 是什么意思呢,在后面章节再解释。二这种布局会出现分布式服务器“脑裂”问题,如下图 此时可以看到一台 replcation 成为了新的 master,而假如此刻客户端对 redis 进行写入那么数据将会丢失, redis.conf 中的两个参数可以设置

redis哨兵部署

时光总嘲笑我的痴心妄想 提交于 2020-01-02 21:35:37
redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件redis是c语言编写的,支持数据持久化,是key-value类型数据库。应用在缓存,队列系统中redis支持数据备份,也就是master-slave模式 redis一秒可以执行10万个命令 redis为什么这么快? 1.是完全基于内存数据库 2.redis是完全用c写的单线程的数据库 redis如何安装 1.yum安装 安装:yum install redis -y 卸载:yum remove redis -y 启动:systemctl start redis 查看监听端口:netstat -tunlp 2.redis编译安装(注意删除安装的redis) 编译安装三部曲 1.下载redis源码wget http://download.redis.io/releases/redis-4.0.10.tar.gz2.解压缩tar -zxvf redis-4.0.10.tar.gz3.切换redis源码目录cd redis-4.0.104.编译源文件make 5.编译好后,src/目录下有编译好的redis指令6.make install 安装到指定目录,默认在/usr/local/bin 添加环境变量 :vim /etc/profile path= “/usr/local

Redis主从同步、哨兵、集群

拜拜、爱过 提交于 2020-01-02 00:02:32
什么是主从同步(复制) 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。 主从复制的作用 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。 读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量; 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。 Redis之主从同步的实现原理 1.当从库和主库建立ms(master和slave)关系后,会向主库发送sync命令。 2.收到SYNC命令的主服务器执行BGSAVE命令

redis 集群搭建

一个人想着一个人 提交于 2020-01-01 13:58:40
redis版本:redis-5.0.7.tar.gz 操作系统:完全新安装的centos7.6系统 使用一台虚拟机模拟6个redis节点,3个master,3个slave,虚拟机IP为192.168.227.128 和使用不同的IP创建集群基本过程一致,为了方便,就不创建多个虚拟机了。 开始搭建: yum install -y wget gcc systemctl stop firewalld.service systemctl disable firewalld.service cd /opt wget http://download.redis.io/releases/redis-5.0.7.tar.gz(或者到redis官网下载安装包redis-5.0.7.tar.gz,网址:https://redis.io/) tar zxvf redis-5.0.3.tar.gz mv redis-5.0.3 redis cd redis 解压后目录结构如下: 编译安装: make MALLOC=libc make install src目录包含了redis server和redis cli的相关命令脚本,将该路径加入到PATH环境变量当中,方便使用 cd /opt/redis mkdir cluster # 创建redis实例根目录 cd cluster mkdir 7001 #

redis笔记⑤——redis集群

我们两清 提交于 2020-01-01 13:50:22
Redis Cluster高可用集群 概述 redis cluster集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特 性。 Redis cluster集群不需要sentinel哨兵节点也能完成节点移除和故障转移的功能。需要将每个节点 设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到 1000节点。 redis cluster集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单,其架构如下图所示: 集群的搭建 redis集群的搭建分两种方法,一种是原生的方法搭建,一种是使用redis提供的rb脚本搭建。 原生搭建 这里搭建四个节点的集群,两个主节点,两个从节点,首先还是配置每个redis节点,同样也是通过redis.conf文件配置。 配置节点 各个节点大部分配置还是和之前主从模式的节点配置差不多。 这里绑定的ip是我使用的虚拟机的ip,这样我的本机也是可以访问的 还是尽量减少RDB持久化的发生 同样如果我们配置了redis的密码还是要设置密码,不过不需要配置主机节点 接着开启集群模式 配置它的集群信息文件 打开这个配置 这个属性配置为no,这个配置的意思是在某一个节点出现问题挂掉的时候,如果配置no这个节点不可用,但其他节点可用,如果配置yes,代表整个集群都不可用,直到故障转移结束。 启动节点 启动节点

mysql 集群 数据同步

扶醉桌前 提交于 2020-01-01 01:08:02
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 #监听变化方式