我的编程空间,编程开发者的网络收藏夹
学习永远不晚

应用实践:如何在分布式缓存中使用RT和WT?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

应用实践:如何在分布式缓存中使用RT和WT?

  随着应对大规模交易的Web应用程序、SOA和其他服务器应用程序的爆炸式增长,数据存储无法跟上应用增长速度,因为数据存储无法继续添加更多服务器以扩展,这与可扩展性极高的应用架构不同。

  在这种情况下,内存分布式缓存为数据存储瓶颈提供了极好的解决方案。它跨越多个服务器(称为集群)将内存集中在一起,并保持所有服务器之间的高速缓存同步,并且可以像应用程序服务器一样不断增长高速缓存集群,这减少了数据存储的压力,使其不再是可扩展性的瓶颈。

  分布式缓存主要有两种使用方式:

  ·Cache:这是应用程序负责读取和写入数据库的地方,Cache不与数据库交互。Cache“kept aside”为更快,更具可扩展性的内存数据存储。应用程序在从数据库读取任何内容之前需要检查Cache。并且,应用程序在对数据库进行更新后会自动更新Cache,保证应用程序可以确保Cache与数据库内数据的同步。

  ·read-through/write-through(RT / WT):这是应用程序将Cache视为主数据存储并从中读取数据向其写入数据的位置。缓存负责将这些数据读写到数据库,从而减轻应用负担。Read-Through,业务代码首先调用Cache,如果Cache不命中由Cache回源到SoR,而不是业务代码(即由Cache读SoR)。Write-Through,称之为穿透写模式/直写模式,业务代码首先调用Cache写(新增/修改)数据,然后由Cache负责写缓存和写SoR,而不是业务代码。

应用实践:如何在分布式缓存中使用RT和WT?
▲通读式/直写式缓存架构

  Cache-aside是一种非常强大的技术,即业务代码围绕Cache写,是由业务代码直接维护缓存,可以让用户进行复杂的数据库查询,包括连接和嵌套查询,并以任何用户想要的方式处理数据。尽管如此,Read-through / Write-through与Cache相比具有各种优势,如下所述:

  ·简化应用程序代码:在Cache-aside方法中,如果多个应用程序处理相同的数据,则应用程序代码将继续具有复杂性并直接依赖于数据库,甚至会重复执行代码。Read-through / Write-through将部分数据访问代码从应用程序移至Cache层,极大地简化了应用程序并更加清晰地提取数据。

  ·通过Read-through更好地实现可伸缩性:在许多情况下,缓存项到期并且多个并行用户线程最终触发数据库,将其与数以百万计的缓存项和数以千计的并行用户请求相乘,数据库负载明显变高。但是,当从数据库获取最新副本时,“Read-through”将cache-item保存至缓存中,同时从数据库中获取最新副本。最终结果是应用程序永远不会去数据库获取这些cache-items ,并且数据库负载保持最小。

  ·使用Write-behind获取更好得写入性能:在cache-aside中,应用程序直接同步更新数据库。Write-behind可让应用程序快速更新缓存并返回。然后,让cache在后台更新数据库。

  ·使用Write-behind更好地实现数据库可伸缩性:使用Write-behind,用户可以指定限制条件,因此数据库写入速度不会像缓存更新那样快,因此数据库压力不会太大。此外,用户可安排数据库写入在非高峰时段进行,再次将压力降至最低。

  ·到期自动刷新缓存:使用Read-through ,Cache可自动从数据库重新加载对象。这意味着应用程序不必在繁忙时间点击数据库,因为最新的数据总是在Cache中。

  ·数据库更改时自动刷新Cache:当数据库中相应的数据发生更改时,Read-through 允许Cache自动从数据库中重新加载对象。 这意味着缓存总是最新的,并且应用程序不必在繁忙时间点击数据库,因为最新的数据总是在Cache中。

  “读取/写入”(RT/WT)不适用于应用程序中的所有数据访问,最适合从数据库读取单个行或读取可直接映射到单个缓存项数据的情况。即使数据周期性变化,频繁读取也是在Cache中实现。

  开发Read-Through Handler

  Read-Through Handler向cache服务器注册,并允许cache直接从数据库读取数据。 NCache服务器提供了一个 Read-through handler接口。 这使NCache能够调用Read-through处理程序。

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

  Start()执行某些资源分配任务,例如建立到主数据源的连接,而Stop()则意味着重置所有分配,Load是cache用于调用read-through对象的方法。

  开发Write-Through Handler

  当cache需要在更新缓存时写入数据库时,将调用Write-Through Handler。 通常,应用程序通过添加,插入或删除向cache发布更新。

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

  Start()执行资源分配任务,例如建立到数据源的连接,而Stop()意味着重置所有分配, Save是缓存调用write-through对象的方法。

  从应用程序调用Read-Through和Write-Through

  以下示例代码展示了如何使用来自简单Windows应用程序cache的read-through/write-through功能。

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

应用实践:如何在分布式缓存中使用RT和WT?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

应用实践:如何在分布式缓存中使用RT和WT?

随着应对大规模交易的Web应用程序、SOA和其他服务器应用程序的爆炸式增长,数据存储无法跟上应用增长速度,因为数据存储无法继续添加更多服务器以扩展,这与可扩展性极高的应用架构不同。  在这种情况下,内存分布式缓存为数据存储瓶颈提供了极好
2023-06-05

如何使用Redis实现分布式缓存更新

如何使用Redis实现分布式缓存更新在分布式系统中,缓存起到了重要的作用,可以大大提升系统的性能和可扩展性。而Redis作为一种高性能的内存数据库,常用于分布式缓存的实现。本文将为您介绍如何使用Redis实现分布式缓存的更新,并给出具体的代
如何使用Redis实现分布式缓存更新
2023-11-07

PHP开发中如何使用Memcache实现分布式缓存?

PHP开发中如何使用Memcache实现分布式缓存?随着Web应用程序的规模和访问量的增加,缓存的重要性也越来越凸显。使用缓存可以有效减轻数据库的负载,提高网站的响应速度,并减少不必要的服务器请求。在分布式环境中,使用Memcache来实现
PHP开发中如何使用Memcache实现分布式缓存?
2023-11-07

如何用Go语言和Redis实现分布式缓存

如何用Go语言和Redis实现分布式缓存引言:随着互联网的发展和应用程序的复杂性增加,缓存已经成为了提高应用性能的重要手段之一。而分布式缓存则更加适用于大规模应用系统,能够提供高效的数据存储和访问。本文将介绍如何使用Go语言和Redis实现
2023-10-27

分布式缓存在PHP接口性能优化中的应用(PHP接口性能优化中分布式缓存的使用)

分布式缓存(Redis、Memcached、Varnish等)可优化PHP接口性能,其工作原理是存储常用数据的副本,减少数据库访问频率。应用方式包括:存储会话数据、缓存动态内容、减轻数据库负载、改进全局一致性、提高吞吐量。优化策略有:选择合适的缓存技术、设置缓存到期时间、使用一致性哈希、限制缓存大小、实施缓存清除策略、使用缓存封装库。好处包含:降低数据库负载、减少API响应时间、提高吞吐量、增强可扩展性、降低成本。需要注意:数据一致性、缓存开销、缓存穿透、缓存雪崩、缓存停电。通过有效应用分布式缓存,PHP
分布式缓存在PHP接口性能优化中的应用(PHP接口性能优化中分布式缓存的使用)
2024-04-02

如何利用Redis和C#实现分布式缓存功能

如何利用Redis和C#实现分布式缓存功能简介:在分布式系统中,缓存是一个重要的组件,它可以减少数据库的负载,提高系统的性能和可伸缩性。Redis是一个流行的缓存服务器,它的简单性、高效性和可扩展性使其成为了一个理想的选择。本文将介绍如何使
2023-10-22

如何利用Redis和Node.js实现分布式缓存功能

如何利用Redis和Node.js实现分布式缓存功能Redis是一个开源的内存数据库,其提供了快速可扩展的键值存储,常用于缓存、消息队列和数据存储等场景。Node.js是一个基于Chrome V8引擎的JavaScript运行时,适用于高并
2023-10-22

怎么使用SignalR和Redis实现实时分布式缓存

要实现实时分布式缓存,可以结合使用SignalR和Redis。首先,通过SignalR建立一个实时通信的连接,可以让不同的服务之间实时地传递消息和数据。然后,借助Redis作为分布式缓存存储,可以在不同的服务之间共享缓存数据。具体步骤
怎么使用SignalR和Redis实现实时分布式缓存
2024-05-09

C#中怎么使用Couchbase实现分布式缓存

C#中怎么使用Couchbase实现分布式缓存,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和
2023-06-17

PHP开发中如何使用Memcache进行分布式缓存?

随着Web应用程序的日益复杂,性能也成为了一个关键问题。在许多应用程序中,数据库查询是最耗费时间的操作之一。为了避免频繁地从数据库中读取数据,可以使用一个缓存系统,将经常读取的数据存储在内存中,以便快速的访问。在PHP开发中,使用Memca
PHP开发中如何使用Memcache进行分布式缓存?
2023-11-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录