当前位置: 首页 > news >正文

网站建设实训考试百度如何创建网站

网站建设实训考试,百度如何创建网站,十大免费网站推广平台有哪些,网站制作专业的公司叫什么Redis 基本原理 Redis 简介 Redis 是一款基于 ANSI C 语言编写的#xff0c;BSD 许可的#xff0c;日志型 key-value 存储组件#xff0c;它的所有数据结构都存在内存中#xff0c;可以用作缓存、数据库和消息中间件。 Redis 是 Remote dictionary server 即远程字典服务…Redis 基本原理 Redis 简介 Redis 是一款基于 ANSI C 语言编写的BSD 许可的日志型 key-value 存储组件它的所有数据结构都存在内存中可以用作缓存、数据库和消息中间件。 Redis 是 Remote dictionary server 即远程字典服务的缩写一个 Redis 实例可以有多个存储数据的字典客户端可以通过 select 来选择字典即 DB 进行数据存储。 Redis 特性 同为 key-value 存储组件Memcached 只能支持二进制字节块这一种数据类型。而 Redis 的数据类型却丰富的多它具有 8 种核心数据类型每种数据类型都有一系列操作指令对应。Redis 性能很高单线程压测可以达到 10~11w 的 QPS。 虽然 Redis 所有数据的读写操作都在内存中进行但也可以将所有数据进行落盘做持久化。Redis 提供了 2 种持久化方式。 快照方式将某时刻所有数据都写入硬盘的 RDB 文件 追加文件方式即将所有写命令都以追加的方式写入硬盘的 AOF 文件中。 线上 Redis 一般会同时使用两种方式通过开启 appendonly 及关联配置项将写命令及时追加到 AOF 文件同时在每日流量低峰时通过 bgsave 保存当时所有内存数据快照。 对于互联网系统的线上流量读操作远远大于写操作。以微博为例读请求占总体流量的 90%左右。大量的读请求通常会远超 Redis 的可承载范围。此时可以使用 Redis 的复制特性让一个 Redis 实例作为 master然后通过复制挂载多个不断同步更新的副本即多个 slave。通过读写分离把所有写操作落在 Redis 的 master所有读操作随机落在 Redis 的多个 slave 中从而大幅提升 Redis 的读写能力。 Lua 是一个高效、简洁、易扩展的脚本语言可以方便的嵌入其他语言中使用。Redis 自 2.6 版本开始支持 Lua。通过支持 client 端自定义的 Lua 脚本Redis 可以减少网络开销提升处理性能还可以把脚本中的多个操作作为一个整体来操作实现原子性更新。 Redis 还支持事务在 multi 指令后指定多个操作然后通过 exec 指令一次性执行中途如果出现异常则不执行所有命令操作否则按顺序一次性执行所有操作执行过程中不会执行任何其他指令。 Redis 还支持 Cluster 特性可以通过自动或手动方式将所有 key 按哈希分散到不同节点在容量不足时还可以通过 Redis 的迁移指令把其中一部分 key 迁移到其他节点。 对于 Redis 的特性可以通过这张思维导图做个初步了解。在后面的课程中我会逐一进行详细讲解。 作为缓存组件Redis 的最大优势是支持丰富的数据类型。目前Redis 支持 8 种核心数据类型包括 string、list、set、sorted set、hash、bitmap、geo、hyperloglog。 Redis 的所有内存数据结构都存在全局的 dict 字典中dict 类似 Memcached 的 hashtable。Redis 的 dict 也有 2 个哈希表插入新 key 时一般用 0 号哈希表随着 key 的插入或删除当 0 号哈希表的 keys 数大于哈希表桶数或 kyes 数小于哈希桶的 1/10 时就对 hash 表进行扩缩。dict 中哈希表解决冲突的方式与 Memcached 相同也是使用桶内单链表来指向多个 hash 相同的 key/value 数据。 Redis 高性能 Redis 一般被看作单进程/单线程组件因为 Redis 的网络 IO 和命令处理都在核心进程中由单线程处理。Redis 基于 Epoll 事件模型开发可以进行非阻塞网络 IO同时由于单线程命令处理整个处理过程不存在竞争不需要加锁没有上下文切换开销所有数据操作都是在内存中操作所以 Redis 的性能很高单个实例即可以达到 10w 级的 QPS。核心线程除了负责网络 IO 及命令处理外还负责写数据到缓冲以方便将最新写操作同步到 AOF、slave。 除了主进程Redis 还会 fork 一个子进程来进行重负荷任务的处理。Redis fork 子进程主要有 3 种场景。 收到 bgrewriteaof 命令时Redis 调用 fork构建一个子进程子进程往临时 AOF文件中写入重建数据库状态的所有命令当写入完毕子进程则通知父进程父进程把新增的写操作也追加到临时 AOF 文件然后将临时文件替换老的 AOF 文件并重命名。 收到 bgsave 命令时Redis 构建子进程子进程将内存中的所有数据通过快照做一次持久化落地写入到 RDB 中。 当需要进行全量复制时master 也会启动一个子进程子进程将数据库快照保存到 RDB 文件在写完 RDB 快照文件后master 就会把 RDB 发给 slave同时将后续新的写指令都同步给 slave。 主进程中除了主线程处理网络 IO 和命令操作外还有 3 个辅助 BIO 线程。这 3 个 BIO 线程分别负责处理文件关闭、AOF 缓冲数据刷新到磁盘以及清理对象这三个任务队列。 Redis 在启动时会同时启动这三个 BIO 线程然后 BIO 线程休眠等待任务。当需要执行相关类型的后台任务时就会构建一个 bio_job 结构记录任务参数然后将 bio_job 追加到任务队列尾部。然后唤醒 BIO 线程即可进行任务执行。 Redis 持久化 Redis 的持久化是通过 RDB 和 AOF 文件进行的。RDB 只记录某个时间点的快照可以通过设置指定时间内修改 keys 数的阀值超过则自动构建 RDB 内容快照不过线上运维一般会选择在业务低峰期定期进行。RDB 存储的是构建时刻的数据快照内存数据一旦落地不会理会后续的变更。而 AOF记录是构建整个数据库内容的命令它会随着新的写操作不断进行追加操作。由于不断追加AOF 会记录数据大量的中间状态AOF 文件会变得非常大此时可以通过 bgrewriteaof 指令对 AOF 进行重写只保留数据的最后内容来大大缩减 AOF 的内容。 为了提升系统的可扩展性提升读操作的支撑能力Redis 支持 master-slave 的复制功能。当 Redis 的 slave 部署并设置完毕后slave 会和 master 建立连接进行全量同步。 第一次建立连接或者长时间断开连接后缺失的指令超过 master 复制缓冲区的大小都需要先进行一次全量同步。全量同步时master 会启动一个子进程将数据库快照保存到文件中然后将这个快照文件发给 slave同时将快照之后的写指令也同步给 slave。 全量同步完成后如果 slave 短时间中断然后重连复制缺少的写指令长度小于 master 的复制缓冲大小master 就会把 slave 缺失的内容全部发送给 slave进行增量复制。 Redis 的 master 可以挂载多个 slave同时 slave 还可以继续挂载 slave通过这种方式可以有效减轻 master 的压力同时在 master 挂掉后可以在 slave 通过 slaveof no one 指令使当前 slave 停止与 master 的同步转而成为新的 master。 Redis 集群管理 Redis 的集群管理有 3 种方式。 client 分片访问client 对 key 做 hash然后按取模或一致性 hash把 key 的读写分散到不同的 Redis 实例上。 在 Redis 前加一个 proxy把路由策略、后端 Redis 状态维护的工作都放到 proxy 中进行client 直接访问 proxy后端 Redis 变更只需修改 proxy 配置即可。 直接使用 Redis cluster。Redis 创建之初使用方直接给 Redis 的节点分配 slot后续访问时对 key 做 hash 找到对应的 slot然后访问 slot 所在的 Redis 实例。在需要扩容缩容时可以在线通过 cluster setslot 指令以及 migrate 指令将 slot 下所有 key 迁移到目标节点即可实现扩缩容的目的。
http://www.hkea.cn/news/14339568/

相关文章:

  • 网站系统与网站源码的关系合肥新站区有做网站的吗
  • 企业网站建设规范建设众筹类网站
  • 中移建设 公司 网站东台市建设局网站
  • 自己创建网站的注意事项代运营服务方案
  • 上海cms网站建设网站添加支付功能
  • 广州建站推广ic外贸平台排行
  • 淘宝推广费用一般多少小璇seo优化网站
  • 无锡市建设银行总行网站怎么做农产品垂直网站
  • 网站背景色软件开发网络技术开发公司
  • 视频直播app开发网站外贸站外推广
  • 梅州生态建设有限公司网站定南建设银行网站点
  • 网站建设网站维护网站外包为什么做游戏网站被封
  • 美橙智能网站行业网站建设教程
  • 网站制作品牌公司做网站须知
  • 做响应式网站的微博号如何做网站首页的psd图
  • 佛山专业建设网站郴州做网站的
  • 河北农业建设信息网站wordpress判断使用模版
  • php可以做网站布局吗昆山规划与建设局网站
  • 做公司的网站有哪些东西吗阿克苏交通建设局网站
  • 温州外贸网站建设资阳公司短视频优化服务
  • 江淮网站开发中信建设有限责任公司重庆沿江高速公路总承包部
  • 中英文网站多少钱策略网页游戏大全
  • 网站做推广需要营业执照一个服务器上建立多个网站吗
  • cnzz站长统计工具网站用什么构建
  • 宠物网站开发文档加氢站个公司好
  • 原创文章对网站的好处fireworks个人网站模板
  • 做个外贸网站泰国一家做男模的网站
  • 网站宣传费用手机端开发
  • 棕色网站设计深圳市住房建设局网站
  • 金鹏建设集团网站今天特大军事新闻