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

中国对外贸易网站小黄猫传媒有限公司官方首页

中国对外贸易网站,小黄猫传媒有限公司官方首页,爱站网能不能挖掘关键词,杭州网站做的好公司哪家好文章目录 什么是分布式缓存#xff1f;分布式缓存原理Redis 分布缓存原理Memcached 分布式缓存原理对比分析 在计算机领域的各个方面#xff0c;缓存都非常重要#xff0c;是提升访问性能的一个重要技术。为什么这么说呢#xff1f;从单个计算机的体系结构来看#xff0c;… 文章目录 什么是分布式缓存分布式缓存原理Redis 分布缓存原理Memcached 分布式缓存原理对比分析 在计算机领域的各个方面缓存都非常重要是提升访问性能的一个重要技术。为什么这么说呢从单个计算机的体系结构来看内存和处理器速度差异很大如果不采用缓存技术处理器的性能会受到很大的限制。再看计算机应用如果不采用缓存技术对于每个请求应用都要与后台数据库做一次交互而数据库中的数据存储在磁盘上因此每次请求都要和磁盘做交互而磁盘访问的性能很低造成访问延迟。除此之外还有网络访问如果没有缓存机制每次访问主机都要与远程机器做交互速度又可想而知。 什么是分布式缓存 在计算机领域缓存技术一般是指用一个更快的存储设备存储一些经常用到的数据供用户快速访问。用户不需要每次都与慢设备去做交互因此可以提高访问效率。分布式缓存就是指在分布式环境或系统下把一些热门数据存储到离用户近、离应用近的位置并尽量存储到更快的设备以减少远程数据传输的延迟让用户和应用可以很快访问到想要的数据。我们通常说的分布式数据缓存属于计算机应用中的缓存的一种。而计算机应用中的缓存一般指内存即内存存储了用户经常访问的数据用户或应用不再需要到磁盘中去获取相应的数据大幅提高访问速度。如下图所示数据 A 是应用经常访问的数据而数据 B 很少被应用访问因此当应用访问数据 A 时不需要到磁盘而直接访问内存即可得到对应的值速度较快相反访问数据 B 时由于内存中没有缓存数据 B所以应用需要到磁盘中获取对应的值速度较慢。 分布式缓存原理 以主流的分布式缓存系统 Redis 和 Memcached 为例讲述分布缓存技术。 Redis 分布缓存原理 Redis 的全称是 Remote Dictionary Server远程字典服务器。可以直观地看出它是以字典结构将数据存储在内存中应用可直接到内存读写 Redis 存储的数据。Redis 集群是一个典型的去中心化结构每个节点都负责一部分数据的存储同时每个节点还会进行主备设计来提高 Redis 的可靠性。Redis 中与缓存关系最紧密的三个特性支持多数据结构、支持持久化和主备同步。 第一Redis 支持多数据结构。Redis 是一个基于内存的 key-value 数据库为了方便支持多应用的缓存比如缓存文本类型、数据库的查询结果字段与字段对应的值等等支持的数据结构不仅有简单的 kv 类型还可以支持 List、Set、Hash 等复杂类型的存储。 以 Hash 这种复杂类型的存储为例Redis 将 Hash 视作一个整体当作数据库的 value可以是一个对象比如结构体对象进行存储。如果把 Hash 结构的整体看作对象的话Hash 结构里的 key-value 相当于该对象的属性名和属性值。比如插入 Hash 数据类型的命令HMSET test field1 “Hello” field2 “World”中如下图所示test 为 key 值 field1 “Hello” field2 “World” 为 value 值如果把整个 Hash 结构看做对象的话则 field1、field2 类似于对象中的属性名“Hello”“World”类似于对象中的属性值。 第二Redis 支持持久化。持久化是指将数据从内存这种易失性存储设备中写入磁盘从而让数据永久保存。Redis 中存储的数据虽然是基于内存的但它也提供了持久化的机制主要有两种方式RDB 和 AOF。 RDBRedis DataBase也称快照方式简单来说就是 Redis 会定时将内存中的数据备份到磁盘中形成一个快照比如每天保存一下过去一周的数据。这样当节点出现故障时可以根据快照恢复到不同版本的数据。这种方式有一个明显的缺点是会造成数据丢失即当节点出现故障时新数据可能还未备份到磁盘中。AOFAppend Only File的出现主要弥补了 RDB 数据不一致的问题其思想与数据库复制技术中 binary log 类似即记录下 Redis 中所有的更新操作。在 Redis 中提供了三种实现 AOF 的策略 AOF_FSYNC_NO 不同步即不会自动触发写操作的同步AOF_FSYNC_EVERYSEC 每秒同步即每隔一秒都会将写操作同步到磁盘AOF_FSYNC_ALWAYS 每次写都同步即每次发生写操作会立即同步到磁盘。 Redis 中默认采用 AOF_FSYNC_EVERYSEC每秒同步的策略因为这种策略的性能很不错而且一旦出现故障最多只会丢失一秒的数据。 第三Redis 支持主备同步。在 Redis 中采用的是异步复制技术但 Redis 可以通过配置 min-replicas-to-write 和 min-replicas-max-lag 这两个参数来有效地保证数据一致性。比如设置 min-replicas-to-write3、min-replicas-max-lag10表示当至少有 3 个备数据库连接主数据库的延迟时间小于 10s 时主数据库才可以执行写操作。延迟时间是从最后一次收到备数据库的心跳开始计算通常每秒发送一次心跳。 除了上面对写操作的同步在 Redis 中还有两种情况是需要进行数据同步的 一种情况是初次同步即备数据库刚启动时的数据同步另一种情况是因网络故障导致主备数据库断开连接待网络恢复后的备数据库的数据同步。 针对这两种情况Redis 提供了两种同步模式即完整重同步和部分重同步。 完整重同步的流程如下所示 当备服务器启动时会向主服务器发送 SYNC 命令主服务器收到命令后会生成 RDB快照文件并记录从现在起新执行的写操作RDB 生成后会发送给备服务器备服务器通过 RDB 文件进行数据更新更新完成后主服务器再将新记录的写操作发送给备服务器备服务器执行完这些新记录的写操作便与主服务器的数据保持一致了。 部分重同步的流程如下所示 部分重同步就是当网络恢复后主数据库将主备数据库断开连接之后的一系列写操作发送给备服务器备数据库执行这些写操作从而保证数据保持一致。在这种方式的实现中主备数据库会共同维护一个复制偏移量这样主数据库就知道应该将哪些写操作发给备数据库备数据库同步时也知道应该从哪里继续执行操作。如图所示主数据库的复制偏移量为 5000 时向备数据库发送了 100 个字节的数据发送结束后复制偏移量为 5100。此时主备数据库连接断开备数据库没有接收到这 100 个字节的数据等到备数据库重新与主数据库连接上之后会给主数据库发送 PSYNC 命令并带上自己的复制偏移量 5000主数据库接收到信息后根据接收到的复制偏移量将 5000 之后的数据发给备数据库从而完成数据的部分重同步。 Memcached 分布式缓存原理 与 Redis 类似Memcached 也是一个基于内存的高性能 key-value 缓存数据库。Memcached 比 Redis 问世更早也有很多公司在使用比如 Facebook、Vox、LiveJournal 等。其实Memecached 的缓存原理和 Redis 类似。Redis 的集群结构是每个节点负责一部分哈希槽且每个节点可以设计主备。与 Redis 不同Memcached 集群采用一致性哈希的思路使用的是 Ketama 算法。该算法的主要思想就是带虚拟节点的一致性哈希算法。在实际应用中每个物理节点对应 100~200 个虚拟节点才能到达一个较好的存储均衡。这里为了方便理解我对 Memcached 的集群结构做了简化如下图所示物理节点 1 对应两个虚拟节点 1-1、1-2物理节点 2 对应三个虚拟节点 2-1、2-2 和 2-3。 采用带虚拟节点的一致性哈希方法有一个优点是当添加或移除节点时不会出现大规模的数据迁移。对于数据结构的支持Memcached 仅支持简单的 kv 数据类型如果想要存储复杂的数据类型比如 List、Set 和 Hash 等需要客户端自己处理将其转化为字符串然后进行存储。这样就导致了一个缺点操作不灵活。比如Memcached 存储的数组中有一个元素需要修改则需要将整个数组的数据取出来修改后再整体写入到数据库中 。而对于持久化Memcached 是不支持的。这意味着断电时Memcached 中存储的数据将会全部丢失。因为内存是一种易失性存储设备断电后将不会存储数据。在 Memcached 中服务器和服务器之间没有任何通信即自身不支持主备。如果想要实现高可用需要通过第三方实现。比如Repcached 实现了 Memcached 的复制功能支持一主一备从而使 Memcached 满足高可用。 对比分析 知识扩展除了分布式存储中的缓存还有计算机体系结构和网络中的缓存它们又分别是什么呢 计算机体系结构中的缓存通常是指专用的缓存设备。由于内存和 CPU 访问速度相差很大为了提高 CPU 的性能计算机内部在 CPU 与内存之间设置了相应的缓存。 现在大多数机器分为三级缓存L1 高级缓存、L2 高级缓存和 L3 高级缓存。就访问速度来讲L1 高级缓存 L2 高级缓存 L3 高级缓存 内存。其中L1 高级缓存的访问速度几乎和 CPU 中寄存器的访问速度一样快。 有了这三级缓存很多数据不需要到内存中读取而直接读取这三级缓存中的数据即可缩短了数据访问的时间使得计算机运行速度变得更快。 网络访问中的缓存通常是指本地的“磁盘”。通过网络访问数据时需要与远程服务器交互来进行传输而网络间数据传输以及远程服务器对请求的响应会耗费很多时间。如果本机器的磁盘可以对你经常访问的远程内容进行存储这样就不用每次都与远程服务器交互从而减少网络数据传输与服务器响应的延迟极大地提高性能。 可以看出缓存的概念是相对的基于不同的背景或应用场景缓存所映射的存储设备是不一样的。 你知道的越多你不知道的越多。
http://www.zqtcl.cn/news/918529/

相关文章:

  • 小网站托管费用企查宝企业查询
  • 专门做特卖的网站是什么外国炫酷网站网址
  • 学习网站的建设wordpress批量拿shell
  • 中企动力做的网站推软件
  • 北京财优化沧州seo公司
  • 收到网站代码后怎么做啥是东莞网站优化推广
  • 重庆商城网站开发网站建设中英版
  • 免费企业网站开发给酒吧做网站
  • 想用自己电脑做服务器做个网站吗网站制作工作室哪家比较好
  • 这样建立网站vs2008做网站
  • 做网站创业故事好看大方的企业网站源码.net
  • 做家常菜哪个网站最好香蜜湖附近网站建设
  • 网站index.php被修改seo网络推广经理招聘
  • 南京做网站联系南京乐识网站建设培训福州
  • 比较冷门的视频网站做搬运网站建设 分析
  • 网站开发实习计划模板有做数学题的网站吗
  • 汕头 网站网页设计图片轮播切换
  • 免费ui网站美橙网站设计
  • 网站建设 海口哪里有网站设计公司
  • 广西建设监理协会官方网站网站建设的需求文档
  • 网站后台怎么做飘窗wordpress add_theme_page
  • 网站建设哪家信誉好网店美工具体要求
  • 网站管理建设工作wordpress 媒体库 直链
  • 网站备案是域名备案还是空间备案wordpress注册数学验证
  • 网站的种类有哪些怎么做代理人金沙网站
  • 西城顺德网站建设网站开发网上教学
  • 公司网站成本百度制作公司网页
  • 政务网站建设情况汇报网线制作的标准
  • 天空网站开发者wordpress 用户登陆后跳转到首页
  • 网站没有内容可以备案吗哪家网站设计好