 Redis 多数据中心双向同步 祝辰Redis 多数据中心双向同步 祝辰 • 携程框架架构部门 • 资深研发工程师 • 专注于 Redis 高可用系统的 研发工作 • 对分布式存储系统有所涉猎 讲师介绍 祝辰 1 开篇 2 3 4 5 目 录 CONTENTS 携程的Redis架构 分布式理论 双向/多向同步的问题 CRDT 19 世纪的通讯 “At 12:30 am on April 4th 互联网的规模也从单独 一个数据中心的部署方 式转变为多数据中心, 甚 至是跨区域的部署模式 多区域部署 Serverless 分布式存储 Redis 内存数 据库 支持多种 数据结构 支持主 从架构 缓存服务 分布式锁 消息队列 计数器 目前携程的 Redis 部署架构 通过携程的 X-Pipe 项目, 来达到 Redis 跨站点和跨区域的数据同步问题 目前已经支持上海到美国和德国的 目前已经支持上海到美国和德国的 Redis 数据同步 • 到德国法兰克福站点, 平均延迟在 176ms 左右 • 到美西站点, 平均延迟在 160ms 左右 携程业务开发的需求, 对于 Redis 的数 据存储有着强依赖. 机票的业务需要从 上游供应商处收集舱位信息, Redis 方便 的多种数据结构类型对于储存这种数据 比较方便. 同时由于供应商是在全球分布的特性, 就更需要一个能够多点写入的 Redis0 码力 | 45 页 | 1.74 MB | 1 年前3 Redis 多数据中心双向同步 祝辰Redis 多数据中心双向同步 祝辰 • 携程框架架构部门 • 资深研发工程师 • 专注于 Redis 高可用系统的 研发工作 • 对分布式存储系统有所涉猎 讲师介绍 祝辰 1 开篇 2 3 4 5 目 录 CONTENTS 携程的Redis架构 分布式理论 双向/多向同步的问题 CRDT 19 世纪的通讯 “At 12:30 am on April 4th 互联网的规模也从单独 一个数据中心的部署方 式转变为多数据中心, 甚 至是跨区域的部署模式 多区域部署 Serverless 分布式存储 Redis 内存数 据库 支持多种 数据结构 支持主 从架构 缓存服务 分布式锁 消息队列 计数器 目前携程的 Redis 部署架构 通过携程的 X-Pipe 项目, 来达到 Redis 跨站点和跨区域的数据同步问题 目前已经支持上海到美国和德国的 目前已经支持上海到美国和德国的 Redis 数据同步 • 到德国法兰克福站点, 平均延迟在 176ms 左右 • 到美西站点, 平均延迟在 160ms 左右 携程业务开发的需求, 对于 Redis 的数 据存储有着强依赖. 机票的业务需要从 上游供应商处收集舱位信息, Redis 方便 的多种数据结构类型对于储存这种数据 比较方便. 同时由于供应商是在全球分布的特性, 就更需要一个能够多点写入的 Redis0 码力 | 45 页 | 1.74 MB | 1 年前3
 Django 官方教程翻译项目内容简要介绍了如何使用 Django 实现一个数据库驱动的 Web 应用。 为了让您充分理解 Django 的工作原理,这份文档为您详细描述了相关的技术细节,不过这并不是 一份入门教程或者是参考文档(我们当然也为您准备了这些)。如果您想要马上开始一个项目,可以 从 实例教程(zh)开始入手,或者直接开始阅读详细的参考文档。 Django 无需数据库就可以使用,它提供了对象关系映射器(ORM)。通过此技术,你可以使用 。通过此技术,你可以使用 Python 代码来描述数据库结构。 数据模型语法提供了很多方法来描述你的数据,这解决了多年来在数据库模式中的难题。以下是一个 简明的例子: 1. # mysite/news/models.py 2. 3. from django.db import models 4. 5. class Reporter(models.Model): 6. full_name headline 然后,运行 Django 命令行工具来创建数据库表。 1. $ python manage.py migrate migrate 命令会查找所有可用的模型,如果数据库中没有与之对应的表,则会为其自动创建。 Django 也提供了其他更丰富的控制方式。 接下来,你就可以使用一套便捷而丰富的 Python API 用于访问你的数据。这些 API 是自动即时 创建的,你不用编写其他任何代码。0 码力 | 103 页 | 1.86 MB | 1 年前3 Django 官方教程翻译项目内容简要介绍了如何使用 Django 实现一个数据库驱动的 Web 应用。 为了让您充分理解 Django 的工作原理,这份文档为您详细描述了相关的技术细节,不过这并不是 一份入门教程或者是参考文档(我们当然也为您准备了这些)。如果您想要马上开始一个项目,可以 从 实例教程(zh)开始入手,或者直接开始阅读详细的参考文档。 Django 无需数据库就可以使用,它提供了对象关系映射器(ORM)。通过此技术,你可以使用 。通过此技术,你可以使用 Python 代码来描述数据库结构。 数据模型语法提供了很多方法来描述你的数据,这解决了多年来在数据库模式中的难题。以下是一个 简明的例子: 1. # mysite/news/models.py 2. 3. from django.db import models 4. 5. class Reporter(models.Model): 6. full_name headline 然后,运行 Django 命令行工具来创建数据库表。 1. $ python manage.py migrate migrate 命令会查找所有可用的模型,如果数据库中没有与之对应的表,则会为其自动创建。 Django 也提供了其他更丰富的控制方式。 接下来,你就可以使用一套便捷而丰富的 Python API 用于访问你的数据。这些 API 是自动即时 创建的,你不用编写其他任何代码。0 码力 | 103 页 | 1.86 MB | 1 年前3
 Python 标准库参考指南 3.13 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 165 7 二进制数据服务 167 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.1.1 函数和异常 . . . . . . . . . . . 188 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 189 8 数据类型 191 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1910 码力 | 2246 页 | 11.74 MB | 9 月前3 Python 标准库参考指南 3.13 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 165 7 二进制数据服务 167 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 167 7.1.1 函数和异常 . . . . . . . . . . . 188 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 189 8 数据类型 191 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1910 码力 | 2246 页 | 11.74 MB | 9 月前3
 Python 标准库参考指南 3.13 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 164 7 二进制数据服务 165 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 165 7.1.1 函数和异常 . . . . . . . . . . . 186 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 187 8 数据类型 189 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1890 码力 | 2242 页 | 11.73 MB | 9 月前3 Python 标准库参考指南 3.13 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 164 7 二进制数据服务 165 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 165 7.1.1 函数和异常 . . . . . . . . . . . 186 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 187 8 数据类型 189 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1890 码力 | 2242 页 | 11.73 MB | 9 月前3
 OpenShift Container Platform 4.14 OperatorClusterServiceVersions (CSV) 和自定义资源定义 (CRD) 以便在集群中创建, 并存储有关软件包和频道的 Operator 元数据。它运行在 Kubernetes 或 OpenShift 集群中,向 OLM 提供这些 Operator 目录数据。 OperatorHub OperatorHub 是一个 web 控制台,供集群管理员用来发现并选择要在其集群上安装的 Operator。它 Bundle Format 是 Operator Framework 引入的新打包格式。为提高可伸缩性并为自行托管 目录的上游用户提供更好地支持,Bundle Format 规格简化了 Operator 元数据的发布。 Operator 捆绑包代表 Operator 的单一版本。磁盘上的捆绑包清单是容器化的,并作为捆绑包镜像提供, 第 第 2 章 章 了解 了解 OPERATOR 7 Operator 作为捆绑包镜像提供, 该镜像是一个不可运行的容器镜像,其中存储了 Kubernetes 清单和 Operator 元数据。然后,使用现有容 器工具(如 podman 和 docker)和容器 registry(如 Quay)来管理捆绑包镜像的存储和发布。 Operator 元数据可以包括: 标识 Operator 的信息,如名称和版本。 驱动 UI 的额外信息,例如其图标和一些示例自定义资源0 码力 | 423 页 | 4.26 MB | 1 年前3 OpenShift Container Platform 4.14 OperatorClusterServiceVersions (CSV) 和自定义资源定义 (CRD) 以便在集群中创建, 并存储有关软件包和频道的 Operator 元数据。它运行在 Kubernetes 或 OpenShift 集群中,向 OLM 提供这些 Operator 目录数据。 OperatorHub OperatorHub 是一个 web 控制台,供集群管理员用来发现并选择要在其集群上安装的 Operator。它 Bundle Format 是 Operator Framework 引入的新打包格式。为提高可伸缩性并为自行托管 目录的上游用户提供更好地支持,Bundle Format 规格简化了 Operator 元数据的发布。 Operator 捆绑包代表 Operator 的单一版本。磁盘上的捆绑包清单是容器化的,并作为捆绑包镜像提供, 第 第 2 章 章 了解 了解 OPERATOR 7 Operator 作为捆绑包镜像提供, 该镜像是一个不可运行的容器镜像,其中存储了 Kubernetes 清单和 Operator 元数据。然后,使用现有容 器工具(如 podman 和 docker)和容器 registry(如 Quay)来管理捆绑包镜像的存储和发布。 Operator 元数据可以包括: 标识 Operator 的信息,如名称和版本。 驱动 UI 的额外信息,例如其图标和一些示例自定义资源0 码力 | 423 页 | 4.26 MB | 1 年前3
 Python 标准库参考指南 3.12 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 160 7 二进制数据服务 163 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 163 7.1.1 函数和异常 . . . . . . . . . . . 184 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 184 8 数据类型 185 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1850 码力 | 2253 页 | 11.81 MB | 9 月前3 Python 标准库参考指南 3.12 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 160 7 二进制数据服务 163 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 163 7.1.1 函数和异常 . . . . . . . . . . . 184 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 184 8 数据类型 185 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1850 码力 | 2253 页 | 11.81 MB | 9 月前3
 Python 标准库参考指南 3.12 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 160 7 二进制数据服务 163 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 163 7.1.1 函数和异常 . . . . . . . . . . . 184 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 184 8 数据类型 185 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1850 码力 | 2253 页 | 11.81 MB | 9 月前3 Python 标准库参考指南 3.12 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 stringprep --- 因特网字符串预处理 用于 GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . 160 7 二进制数据服务 163 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . 163 7.1.1 函数和异常 . . . . . . . . . . . 184 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . 184 8 数据类型 185 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1850 码力 | 2253 页 | 11.81 MB | 9 月前3
 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7 二进制数据服务 161 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 7.1.1 函数和异常 . . . . . . . . 184 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . . 184 8 数据类型 185 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7 二进制数据服务 161 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 7.1.1 函数和异常 . . . . . . . . 184 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . . 184 8 数据类型 185 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3
 Python 标准库参考指南 3.10.15 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 7 二进制数据服务 149 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . 149 7.1.1 函数和异常 . . . . . . . . . . . . 170 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . 170 8 数据类型 171 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1710 码力 | 2072 页 | 10.39 MB | 9 月前3 Python 标准库参考指南 3.10.15 文本自动换行与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 7 二进制数据服务 149 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . 149 7.1.1 函数和异常 . . . . . . . . . . . . 170 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . 170 8 数据类型 171 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1710 码力 | 2072 页 | 10.39 MB | 9 月前3
 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7 二进制数据服务 155 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.1.1 函数和异常 . . . . . . . . 176 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . . 176 8 数据类型 177 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2146 页 | 10.17 MB | 9 月前3 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7 二进制数据服务 155 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.1.1 函数和异常 . . . . . . . . 176 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . . 176 8 数据类型 177 8.1 datetime --- 基本日期和时间类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2146 页 | 10.17 MB | 9 月前3
共 98 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10














 
 