摘要:一、Redis集群扩容.主节点:Redis集群扩容:Redis集群缩容 ### 扩容集群:扩容主节点 ~~~ 添加主节点:先创建7007节点 (无数据) [root@hadoop ~]# mkdir -p /opt/yanqi/servers/redis-cluster/7007 [root@had
阅读全文
摘要:一、Redis集群扩容.从节点:扩容集群:扩容从节点 ### 添加从节点 ~~~ 创建7008实例 (无数据) [root@hadoop ~]# mkdir -p /opt/yanqi/servers/redis-cluster/7008 [root@hadoop ~]# cd /opt/yanqi
阅读全文
摘要:一、分片路由:分片路由: ### 分片 ~~~ 不同节点分组服务于相互无交集的分片(sharding), ~~~ Redis Cluster 不存在单独的proxy或配置服务器,所以需要将客户端路由到目标的分片。 二、客户端路由 ### 客户端路由 ~~~ Redis Cluster的客户端相比单机
阅读全文
摘要:一、RedisCluster分区:RedisCluster分区原理 ### 官方cluster分区 ~~~ Redis3.0之后,Redis官方提供了完整的集群解决方案。 ~~~ 方案采用去中心化的方式, ~~~ 包括:sharding(分区)、replication(复制)、failover(故障
阅读全文
摘要:一、RedisCluster创建:集群搭建 ### RedisCluster最少需要三台主服务器,三台从服务器。 ~~~ 伪分布式端口号规划: 7001~7006 ~~~ 主服务器: 7001/7002/7003 ~~~ 从服务器: 7004/7005/7006 二、创建7001~7006实例 ##
阅读全文
摘要:一、集群与分区 ### 集群与分区 ~~~ 分区是将数据分布在多个Redis实例(Redis主机)上,以至于每个实例只包含一部分数据。 ### 分区的意义 ~~~ # 性能的提升 ~~~ 单机Redis的网络I/O能力和计算资源是有限的,将请求分散到多台机器, ~~~ 充分利用多台机器的计算能力可网
阅读全文
摘要:一、普通Hash ### 普通Hash的优势 ~~~ 实现简单,热点数据分布均匀 ### 普通Hash的缺陷 ~~~ 节点数固定,扩展的话需要重新计。 ~~~ 查询时必须用分片的key来查,一旦key改变,数据就查不出了,所以要使用不易改变的key进行分片 二、一致性hash ### 基本概念 ~~
阅读全文
摘要:一、哨兵模式检测原理:哨兵模式故障转移:执行流程 ### 启动并初始化Sentinel ~~~ Sentinel是一个特殊的Redis服务器 ~~~ 不会进行持久化 ~~~ Sentinel实例启动后 ~~~ 每个Sentinel会创建2个连向主服务器的网络连接 ~~~ 命令连接:用于向主服务器发送
阅读全文
摘要:一、哨兵模式 ### 哨兵 ~~~ 哨兵(sentinel)是Redis的高可用性(High Availability)的解决方案: ~~~ 由一个或多个sentinel实例组成sentinel集群可以监视一个或多个主服务器和多个从服务器。 ~~~ 当主服务器进入下线状态时,sentinel可以将该
阅读全文
摘要:一、同步数据 ### 同步数据 ~~~ Redis 2.8之后分为全量同步和增量同步,具体的后面详细讲解。 ### 命令传播 ~~~ 当同步数据完成后,主从服务器就会进入命令传播阶段, ~~~ 主服务器只要将自己执行的写命令发送给从服务器, ~~~ 而从服务器只要一直执行并接收主服务器发来的写命令。
阅读全文
摘要:一、主从配置 ### 主Redis配置 ~~~ 无需特殊配置 ### 从Redis配置 ~~~ 修改从服务器上的redis.conf 文件: [root@linux123 ~]# vim /opt/yanqi/servers/redis/bin/redis.conf # slaveof <maste
阅读全文
摘要:一、主从复制 ### 本章学习目标: ~~~ 理解主从复制原理、同步数据集 ~~~ 能够配置Redis主从复制 ~~~ 能够配置Redis主从+哨兵模式 ~~~ 理解哨兵执行流程、故障转移和leader选举 ~~~ 掌握一致性hash算法 ~~~ 理解RedisCluster的分片原理 ~~~ 掌握
阅读全文
摘要:一、Redis监视器:监视器 ### 监视器 ~~~ Redis客户端通过执行MONITOR命令可以将自己变为一个监视器, ~~~ 实时地接受并打印出服务器当前处理的命令请求的相关信息。 ~~~ 此时,当其他客户端向服务器发送一条命令请求时,服务器除了会处理这条命令请求之外, ~~~ 还会将这条命令
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:一、脚本管理命令实现 ### 使用redis-cli直接执行lua脚本。 ~~~ test.lua ~~~ # 脚本文件 [root@hadoop bin]# vim test.lua return redis.call('set',KEYS[1],ARGV[1]) ~~~ # 执行脚本 [root
阅读全文
摘要:一、慢查询日志 ### 慢查询日志 ~~~ 我们都知道MySQL有慢查询日志 ~~~ Redis也有慢查询日志,可用于监视和优化查询 ### 慢查询设置 ~~~ 在redis.conf中可以配置和慢查询日志相关的选项: ~~~ # 执行时间超过多少微秒的命令请求会被记录到日志上 0 :全记录 <0
阅读全文
摘要:一、lua脚本与Redis整合应用;lua脚本复制 ### Luau脚本 ~~~ lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, ~~~ 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 ~~~ # Lua应用场景: ~~~ 游戏开发、独立应用脚本、We
阅读全文
摘要:一、EVAL/EVALSHA命令实现 ### EVAL命令 ~~~ 通过执行redis的eval命令,可以运行一段lua脚本 EVAL script numkeys key [key ...] arg [arg ...] ### 命令说明: ~~~ script参数:是一段Lua脚本程序,它会被运行
阅读全文
摘要:一、Redis发布订阅机制 ### 发布于订阅 ~~~ Redis提供了发布订阅功能,可以用于消息的传输 ~~~ Redis的发布订阅机制包括三个部分,publisher,subscriber和Channel ~~~ 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端。 ~~~
阅读全文
摘要:一、事务机制:事务 ### 什么是事务 ~~~ 所谓事务(Transaction) ,是指作为单个逻辑工作单元执行的一系列操作 ### ACID回顾 ~~~ Atomicity(原子性):构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。 ~~~ Redis:一个队列中的命令 执
阅读全文