redis集群搭建

docker容器安装配置redis集群

Deadly 提交于 2019-12-04 08:20:04
最近想用docker容器制作一个redis集群的镜像,以免每次都要重新配置搭建。正好在github上发现一个已有的制作docker-redis-cluster的项目,感觉挺好用的,这里推荐给大家: https://github.com/eloycoto/docker-redis-cluster 制作生成的docker-redis-cluster容器里面有8个redis实例,其中6个实例构成3主3从的redis集群(构成redis集群至少需要3个主),使用的端口为7000至7005;另外两个实例则是与redis集群没有关系的独立运行的,以供非集群模式的使用需求,使用的端口是7006和7007。 redis单实例的配置这里就不多做说明,下面只对redis集群的配置做下说明。 1 构成redis集群的实例配置 以 7000端口的实例配置 进行说明: #指定端口 port 7000 #设置集群可用 cluster-enabled yes #指定集群生成的配置文件名。注意,这个配置文件不是人为编辑的,是集群在运行中自动生成的,记录着集群中其他节点、状态信息、变量等配置信息,以便在启动的时候能重读到 cluster-config-file nodes.conf #设置节点最大不可达时间,单位为毫秒。当主节点不可达时间超过这个设置时间,其对应的从节点将替换成为主节点

redis原理及应用

大兔子大兔子 提交于 2019-12-04 07:01:19
一、redis来源 二、数据类型 三、主流的应用场景 四、特性 五、补充 一、 redis来源 redis作者:Salvatore Sanfilippo (antirez),男,意大利人. 需求:一个访客信息追踪网站,网站可以通过JavaScript脚本,将访客的IP地址、所属国家、阅览器信息、被访问页面的地址等数据传送给LLOOGG. com。然后LLOOGG.com会将这些浏览数据通过web页面实时地展示给用户,并储存起最新的5至10,000条浏览记录以便进行查阅。 redis解决方案 每当某个被追踪的网站新增一条浏览记录时,LLOOGG.com就会将这条新的浏览记录推入(push)到与该网站相对应的列表里面,当列表的长度超过用户指定的最大长度时,程序每向列表推入一条新的记录,就需要从列表中弹出(pop)一条最旧的记录。 现在已经被广泛使用: Twitter使用Redis来储存用户时间线(user timeline)。 StackOverflow使用Redis来进行缓存和消息分发。 Pinterest使用Redis来构建关注模型(follow model)和兴趣图谱(interest graph)。 Flickr使用Redis来构建队列。 Github使用Redis作为持久化的键值对数据库,并使用Resque来实现消息队列。 新浪微博使用Redis来实现计数器、反向索引、排行榜

Redis本地集群搭建(5版本以上)

喜你入骨 提交于 2019-12-03 23:18:39
Redis本地集群搭建(5版本以上) 2019年11月3日10:05:48 步骤 1、下载安装Redis的安装包 2、复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 3、修改每个Redis节点的端口,以及开启集群模式 3、使用redis-cli --cluster create ip:port给集群的节点分配哈希槽(如果要使用主从,只需要添加master节点的ip:port即可) 4、使用redis-cli --cluster check ip:port查看节点信息 5、使用redis-cli --cluster add-node node-ip:node-port master-ip:master-port --cluster-slave --cluster-master-id master节点id 具体实现 1、编译 下载安装Redis的安装包 wget http://download.redis.io/releases/redis-5.0.6.tar.gz 解压安装包 tar zxf redis-5.0.6.tar.gz 进入到解压后的文件夹 ps:编译前,服务器需要安装gcc yum install gcc-c++ 输入make命令即可编译,出现下图提示表示编译成功 也可以指定编译位置 make install PREFIX=path

《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构

≯℡__Kan透↙ 提交于 2019-12-03 23:18:28
http://www.cnblogs.com/edisonchou/ 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构 此篇已收录至 《大型网站技术架构》读书笔记系列目录 贴,点击访问该目录可获取更多内容。 首先,所谓网站的伸缩性,指 不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力 。在整个互联网行业的发展渐进演化中,最重要的技术就是 服务器集群 ,通过不断地向集群中添加服务器来增强整个集群的处理能力。 一、网站架构的伸缩性设计 1.1 不同功能进行物理分离实现伸缩   (1)纵向分离:将业务处理流程上得不同部分分离部署,实现系统的伸缩性;   (2)横向分离:将不同的业务模块分离部署,实现系统的伸缩性; 1.2 单一功通过集群规模实现伸缩   使用服务器集群,即将相同服务部署在多台服务器上构成一个集群整体对外提供服务。具体来说,集群伸缩性又分为应用服务器集群伸缩性和数据服务器集群伸缩性。这两种集群对于数据状态管理的不同,技术实现也有很大的区别。  It is said that 当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车 。 二、应用服务器集群的伸缩性设计 2.1 应用服务器那点必须知道的事儿   (1)应用服务器应该被设计成 无状态 的,即应用服务器不存储请求上下文信息;构建集群后

redis入门(三)(转载)

柔情痞子 提交于 2019-12-03 20:12:39
目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 redis入门(三) 目录 redis 入门(一) redis入门(二) redis入门(三) 前言 在前两章介绍了 Redis 的一些常用的API与功能,在本章会对一些其他功能包括事务、脚本、Redis集群搭建工具以及集群动态扩容与故障转移方式进行讲解。 事务 在关系型 数据库 ,我们可以通过事务(transaction)的方式执行数据库级别的原子性操作。在Redis中也提供简单的事务功能。 Redis通过MULTI、EXEC、WATCH等命令来实现功能。它提供了一种将多个命令请求打包,然后一次性、按顺序地执行多个命令的机制。 将一组需要一起执行的命令放到MULTI和EXEC两个命令之间。MULTI命令代表事务开始,EXEC命令代表事务结束,它们之间的命令是原子顺序执行的,在MULTI执行之后,的写命令会直接返回QUEUE,当输入EXEC后会将所有命令一起执行。 127.0.0.1:6379> multi OK 127.0.0.1:6379> set a 1 QUEUED 127.0.0.1:6379> set b 2 QUEUED 127.0.0.1:6379> exec 1) OK

redis 集群

纵饮孤独 提交于 2019-12-03 18:33:25
一、概述 ​ Redis3.0版本之后支持Cluster. 1.1、redis cluster的现状   目前redis支持的cluster特性:   1):节点自动发现   2):slave->master 选举,集群容错   3):Hot resharding:在线分片   4):进群管理:cluster xxx   5):基于配置(nodes-port.conf)的集群管理   6):ASK 转向/MOVED 转向机制. ​ 1.2、redis cluster 架构   1)redis-cluster架构图 架构细节:   (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.   (2)节点的fail是通过集群中超过半数的节点检测失效时才生效.   (3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可   (4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value 2) redis-cluster选举:容错 (1)领着选举过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout)

redis cluster(集群)模式的创建方式

我怕爱的太早我们不能终老 提交于 2019-12-03 13:31:57
redis常用的架构有三种,单例、哨兵、集群,其他的都说过了,这里只简单介绍集群搭建。 单例最简单没什么好说的。 哨兵之前说过,该模式下有哨兵节点监视master和slave,若master宕机可自动将slave转为master,但它也有一个问题,就是不能动态扩充,并且存储大小受每个节点的内存大小限制。 集群模式Redis-Cluster,采用无中心结构,每个节点都和集群内其他节点有连接,数据可以跨主机分布式存储,解决了存储大小受主机限制的问题,Redis集群预分好16384个插槽(slot),每个节点分配一部分slot,当需要在 Redis 集群中放置一个 key-value 时,根据哈希算法决定将key放到哪个slot中,进而找到对应存放数据的主机,查询数据也一样。 集群模式内部同样可以配置主从,例如集群有六个数据节点,可以设置三个主节点,每个主节点对应一个从节点,当一个主节点宕机,可以自动将从节点变成主节点,保证整个集群还能用。但是一个主节点和对应的从节点都宕机后集群将不可用。每个主节点可以配置多个从节点。 集群搭建步骤 1、创建几台虚机,(集群模式最少要三个主节点)例如我们搭建一个三主三从的集群,创建六台虚机,当然要测试的话也可以部署在同一台主机上,使用不同的端口模拟不同主机。 2、在每台主机上安装redis,注意redis配置文件需要注意cluster相关的配置

redis三种模式对比

拜拜、爱过 提交于 2019-12-03 10:21:18
本文链接: https://blog.csdn.net/selectgoodboy/article/details/86377861 模式类型 主从模式(redis2.8版本之前的模式)、哨兵sentinel模式(redis2.8及之后的模式)、redis cluster模式(redis3.0版本之后) 主从模式原理 同Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。 优点: 1、解决数据备份问题 2、做到读写分离,提高服务器性能 缺点: 1、每个客户端连接redis实例的时候都是指定了ip和端口号的,如果所连接的redis实例因为故障下线了,而主从模式也没有提供一定的手段通知客户端另外可连接的客户端地址,因而需要手动更改客户端配置重新连接 2、主从模式下,如果主节点由于故障下线了,那么从节点因为没有主节点而同步中断,因而需要人工进行故障转移工作 3、无法实现动态扩容 sentinel模式 Sentinel(哨兵)是Redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器

redis入门(二)(转载)

佐手、 提交于 2019-12-03 07:25:44
目录 redis入门(二) 前言 持久化 RDB AOF 持久化文件加载 高可用 哨兵 流程 安装部署 配置技巧 集群 原理 集群搭建 参考文档 redis入门(二) 前言 在 redis 入门(一)简单介绍了redis的历史和安装部署,以及基本的数据结构和api,本节讲解redis持久化、高可用、redis集群和分布式相关的知识。 持久化 redis作为内存 数据库 ,数据全部存储到内存中。但是若出现断电等原因会造成数据丢失。redis内置了2种持久化的方式,分别为RDB持久化和AOF持久化。 RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程,换句话来说是将当前redis内存中的数据全部保存到硬盘。触发RDB持久化过程分为手动触发和自动触发。 手动触发 可以通过 save 和 bgsave 两个命令手动执行保存RDB快照。 save 命令:会阻塞当前redis主进程,直到RDB保存完成,save命令已经弃用,不建议生产环境使用。 bgsave 命令:redis进程会执行fork操作创建进程执行保存RDB快照。只有在fork子进程才会短时间阻塞。建议大家都是用 bgsave 命令保存RDB快照。目前redis内部所有RDB操作都使用 bgsave 命令 127.0.0.1:26379> save OK 127.0.0.1:26379> bgsave Background

redis入门(二)

不羁岁月 提交于 2019-12-03 06:55:47
目录 redis入门(二) 前言 持久化 RDB AOF 持久化文件加载 高可用 哨兵 流程 安装部署 配置技巧 集群 原理 集群搭建 参考文档 redis入门(二) 前言 在 redis入门(一) 简单介绍了redis的历史和安装部署,以及基本的数据结构和api,本节讲解redis持久化、高可用、redis集群和分布式相关的知识。 持久化 redis作为内存数据库,数据全部存储到内存中。但是若出现断电等原因会造成数据丢失。redis内置了2种持久化的方式,分别为RDB持久化和AOF持久化。 RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程,换句话来说是将当前redis内存中的数据全部保存到硬盘。触发RDB持久化过程分为手动触发和自动触发。 手动触发 可以通过 save 和 bgsave 两个命令手动执行保存RDB快照。 save 命令:会阻塞当前redis主进程,直到RDB保存完成,save命令已经弃用,不建议生产环境使用。 bgsave 命令:redis进程会执行fork操作创建进程执行保存RDB快照。只有在fork子进程才会短时间阻塞。建议大家都是用 bgsave 命令保存RDB快照。目前redis内部所有RDB操作都使用 bgsave 命令 127.0.0.1:26379> save OK 127.0.0.1:26379> bgsave Background