临沂网站建设举措,仿第四城地方门户网站模板,进度环wordpress,驻马店网站建设公司一、Redis简介
Redis是一个开源的#xff0c;基于网络的#xff0c;高性能的key-value数据库#xff0c;弥补了memcached这类key-value存储的不足#xff0c;在部分场合可以对关系数据库起到很好的补充作用#xff0c;满足实时的高并发需求。 Redis跟memcached类似#…一、Redis简介
Redis是一个开源的基于网络的高性能的key-value数据库弥补了memcached这类key-value存储的不足在部分场合可以对关系数据库起到很好的补充作用满足实时的高并发需求。 Redis跟memcached类似不过数据可以持久化而且支持的数据类型很丰富。支持在服务器端计算集合的并、交和补集(difference)等还支持多种排序功能。 说明 Redis客户端跟服务端间的网络数据传输未加密建议不要使用Redis存取敏感数据否则可能存在安全风险。 二、Redis结构
Redis包含Redis Server与Redis-WS如下图所示
Redis ServerRedis组件的核心模块负责Redis协议的数据读写、数据持久化、主从复制、集群功能。Redis-WSRedis WebService管理模块主要负责Redis集群的创建、扩容、减容、查询、删除等操作集群管理信息存入DB数据库。
三、Redis原理
Redis持久化
Redis提供了RDB与AOF等多种不同级别的持久化方式。 RDB持久化 可以在指定的时间间隔内生成数据集的时间点快照point-in-time snapshot。 AOF持久化 记录服务器执行的所有写操作命令并在服务器启动时通过重新执行这些命令来还原数据集。 AOF文件中的命令全部以Redis协议的格式来保存新命令会被追加到文件的末尾。Redis还可以在后台对AOF文件进行重写使得AOF文件的体积不会超出保存数据集状态所需的实际大小。
Redis可以同时使用AOF持久化和RDB持久化。在这种情况下当Redis重启时它会优先使用AOF文件来还原数据集因为AOF文件保存的数据集通常比RDB文件所保存的数据集更完整。用户也可以关闭持久化功能让数据只在服务器运行时存在。
Redis运行模式
Redis实例可以部署在一个或多个节点上且一个节点上也可以部署一个或多个Redis实例每个节点上Redis实例的个数由软件根据节点硬件资源情况计算得出。
最新版本的Redis支持集群功能可以将多个Redis实例组合为一个Redis集群从而对外提供一个分布式key-value数据库。集群通过分片sharding来进行数据共享并提供复制和故障转移功能。 单实例模式 单实例模式逻辑部署方式如下图所示 说明 一个主实例master可以对应有多个从实例slave从实例本身还可连接从实例。 发给主实例的命令请求主实例会实时同步给从实例进行处理。 主实例宕机从实例不会自动升主。 从实例默认只读在配置了“slave-read-only”为no时从实例也可写。但从实例重启后会从主实例同步数据之前写入从实例的数据丢失。 多层级从实例的结构相对所有从实例都直接连接在主实例下的结构由于减少了主实例需要直接同步的从实例个数一定程度上能提升主实例的业务处理性能。 集群模式 集群模式逻辑部署方式如下图所示 说明 多个Redis实例组合为一个Redis集群共16384个槽位均分到各主实例上。 集群中的每个实例都记录有槽位与实例的映射关系客户端也记录了槽位与实例的映射。客户端根据key进行哈希计算然后和16384进行取模运算得到槽位值。根据槽位-实例映射将消息直接发送到对应实例处理。 默认情况从实例不能读不能写在线执行readonly命令可使从实例可读。 主实例故障由集群中剩余的主实例选举出一个从实例升主需要半数以上主实例运行状态“良好”才能选举。 cluster-require-full-coverage配置项指示集群是否要求完整若配置为yes则其中一组主从都故障时集群状态为故障整个集群不能处理命令若配置为no则半数以上主实例运行状态“良好”集群状态是“良好”。 Redis集群可以进行扩容、减容新实例加入集群或Redis实例退出集群并进行槽位迁移。
四、Redis-Data-Sync
Redis-Data-Sync是一个用于主备集群Redis服务之间的数据同步工具。该工具从主集群中实时同步逻辑集群内的数据到备集群在备集群上提供一个主集群中Redis服务的数据副本。