万博体育彩Redis Enterprise,关键应用程序的高性能缓存解决方案

跨云的快速、高可用性、弹性和可伸缩的缓存层

什么是应用程序缓存?

缓存通过将最常用数据的副本存储在临时但非常快速的存储上,从而提高了应用程序的响应时间。内存内缓存解决方案将工作集保存在快速的DRAM中,而不是缓慢旋转的磁盘中,可以非常有效地实现这些目标。虽然缓存通常用于提高应用程序的延迟,但高可用性和弹性缓存也可以帮助应用程序扩展。将应用程序主逻辑的责任转移到缓存层可以释放计算资源来处理更多的传入请求。

使用案例缓存

数据库图标

DBMS数据存储

大多数传统数据库的设计目的是提供健壮的功能,而不是提供大规模的速度。数据库缓存经常用于存储查找表的副本和对DBMS中昂贵查询的响应,以提高应用程序的性能并减少数据源上的负载。

连接矩阵内的人的轮廓

用户会话数据

缓存用户会话数据是构建可伸缩和响应性强的应用程序的组成部分。因为每个用户交互都需要访问会话的数据,所以将这些数据保存在缓存中可以加快对应用程序用户的响应时间。保持会话数据在缓存中比保持会话粘在负载平衡器级别,因为缓存允许任何应用服务器处理请求不丢失用户的状态,负载均衡器的方法有效地迫使所有请求在一个会话处理一个应用服务器。

齿轮图标

快速访问API响应

现代应用程序是使用松散耦合的组件构建的,这些组件通过api进行通信。应用程序组件使用api从其他组件发出服务请求,无论是在应用程序本身内部(微服务体系结构)还是外部(在软件即服务用例中)。万博电竞客服将API的回复存储在缓存中,即使只是简单地存储,也可以通过避免这种进程间通信来提高应用程序的性能。

高性能缓存解决方案必须解决的三大挑战

性能

第一个要求缓存层必须在任何负载下提供高性能。研究指示为了让用户感觉到一种体验是“即时的”,端到端响应时间必须在100毫秒之内。简单地说,高性能缓存层必须始终以低延迟提供高吞吐量,以避免成为性能瓶颈。

可扩展性

高性能缓存层应该能够伸缩并满足业务增长或突然激增(如情人节、黑色星期五、自然灾害或流行病)带来的需求。此外,可伸缩性应该在不导致停机或离线迁移的情况下动态完成——而不会增加响应时间。

多云和地理分布

越来越多的组织正在采用多云策略是避免厂商锁定,还是利用各种云提供商提供的最佳工具。但管理一个地理分布的缓存系统则更具挑战性,因为它保证了亚毫秒级的延迟,同时还解决了跨多个云的数据集冲突。

万博体育彩Redis Enterprise提供了最佳的缓存解决方案

缓存(懒惰)

这是使用Redis作为缓存的最常用方式。在此策略中,应用程序首先查看缓存以检索数据。如果找不到数据(缓存未命中),则应用程序直接检索来自运营数据存储的数据。仅在必要时加载数据以缓存(这就是为什么该方法也称为延迟加载)。读重应用程序可以极大地受益于实施缓存旁边的方法。

使用Redis作为应用缓存的15个原因

write - behind(回写)

在此策略中,首先将数据写入缓存(例如,REDIS),然后数据在运行数据存储中异步更新。这种方法提高了写性能并简化了应用程序开发,因为开发人员只写到一个地方(REDIS)。RedisGears提供写入和写后面的功能。

访问GitHub演示

直写式

此策略类似于写入后面的方法,因为缓存在应用程序和操作数据存储之间坐在,除了更新是同步完成的。写入模式有利于缓存和数据存储之间的数据一致性,因为写入在服务器的主线程上完成。RedisGears提供写入和写后面的功能。

访问GitHub演示

Read-replica

In an environment where you have large amount of historic data (e.g. a mainframe) or have a requirement that each write must be recorded on an operational data store, Redis Enterprise change data capture (CDC) connectors can capture individual data changes and propagate exact copies without disrupting ongoing operations with near real-time consistency. CDC, coupled with Redis Enterprise’s ability to use multiple data models, can give you valuable insight to data that had previously been locked up.

redis中的多个数据模型功能

用于全局分布式应用程序的企业级缓存层

高可用性,弹性和耐用性

应用程序性能依赖于缓存层。由于您的缓存可能每秒达到数百万次操作,即使是第二个停机时间也可能对性能产生极大影响和满足您的SLA的能力。万博体育彩Redis Enterprise自动备份,即时故障检测,跨机架/区域的快速恢复,以及多个数据持久性选项是确保高可用缓存层并提供一致的用户体验的关键因素。

任何规模的无与伦比的性能

需要轻松且立即缩放高性能应用程序缓存层,以满足增长要求和峰值需求。万博体育彩Redis Enterprise在子毫秒延迟的高吞吐量,真正的共享 - 无架构,以实现线性缩放,支持多租户,以及多核架构确保在提供卓越的性能时充分利用计算资源。

本地延迟的全球分布

无论您的部署环境如何,缓存层都应该跨地理位置提供高可用性和低延迟。此外,Redis Enter万博体育彩prise基于crdts的Active-Active技术为读写操作提供了本地延迟,为简单和复杂的数据类型提供了无缝的冲突解决方案,并确保即使在大量副本宕机的情况下也能保持业务连续性。其结果是:减少了开发的麻烦和操作负担。

开源DNA

有许多可用的解决方案,基于利基技术,或用于特定用例,并未被广泛采用。Redis Open Source在大多数部署环境中支持50多个编程语言,150多个客户端库和默认缓存层。Redis是开源Redis的家园,最受喜爱的数据库第4个年度连续4个,将企业级功能带给您的缓存层。

多云或混合部署

开发缓存层应该很容易快速,而不会在您的团队中添加操作负担。万博体育彩Redis Enterprise可以作为在公共云上的完全托管服务中,释放您从供应,修补,监控和其他管理任务中播放。它也可以作为您自己的基础架构的软件部署,以便您完全控制管理万博电竞客服和配置。此外,支持混合模型以保持操作灵活性。

如何实施缓存?

Redis是围绕数据结构的概念设计的,可以存储您的数据集跨字符串,哈希,排序集,集,列表,流,和其他数据结构或Redis模块。

使用Node.js,您可以通过客户端对象的Get和Set命令来检索并保存具有简单字符串的键值对,如下所示:

//将redis客户端连接到本地实例。
const client = redis.createClient(6379) // Retrieving a string value from Redis if it already exists for this key return client.get(‘myStringKey’, (err, value) => { if (value) { console.log(‘The value associated with this key is: ‘ + value) } else { //key not found // Storing a simple string in the Redis store client.set(‘myStringKey’, ‘Redis Enterprise Tutorial’); } } });

这段代码尝试使用GET命令检索与myStringKey键关联的字符串值。如果没有找到密钥,SET命令存储Redis企业教程的myStringKey值。万博体育彩

相同的代码可以用Python编写,如下所示:

#将redis客户端连接到本地实例。
r = redis.Redis(host='localhost', port=6379, db=0) # Retrieving a string value from Redis if it already exists for this key value = r.get(‘myStringKey’) if value == None: # key not found # Storing a simple string in the Redis store r.set(‘myStringKey’, ‘Redis Enterprise Tutorial’) else: print ‘The value associated with this key is: ‘, value
Baidu