MySQL with Memcached 简介

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

在传统的环境下,访问信息的速度成为最大的可扩展性问题。为了频繁地访问信息,使用MySQL可能会变得很慢,原因是每一次数据访问,都必须请求执行SQL查询,以从数据库得到信息。这也意味着那些在某些时刻被锁住的或者正阻塞的表,可能延迟你的查询,或者降低了你获取信息的速度。

而memcached则是一个简单的,并且是高可扩展性的,基于key的缓存策略。我们可以用它在任何专用的或者剩余的RAM中存储数据以及对象,以加速程序对这些数据的访问速度。你可以运行memcached在一个甚至多个主机上,然后就可以使用共享的缓存来存储对象。因为,每一个主机的RAM都存储着信息,访问速度就会比从硬盘上加载来得快得多。它的性能比从本地数据库检索、加载数据有显著的提高。

也许只是因为这里的缓存只是一个信息“库”。你可以使用缓存来存储任何数据。包括可能需要大量地创建才能构建的复杂的结构。但在这种“ready-to-use”模式下,有助于减少你的MySQL服务器上的负载。

通常的使用环境是修改你的应用程序来让memcached提供的缓存,存储你需要读取的信息。如果信息不在memcached中,那么它将从MySQL数据库中被加载,然后被写入缓存,以便将来从缓存的数据中取出相同对象的便利。

图 1-1 memcached Architecture Overview

在例子中的结构中,任意的客户端都能够连接到其中的一个memcached服务器来请求一个Key。插图中每一个客户端都可以连接到所有的服务器。对一个客户端来说,如果请求存储数据,那么这个用于引用数据的Key将被“哈希”做散列处理,然后用来选择其中的一个memcached服务器。在连接到服务器之前,对memcached服务器的选择将会在客户端发生,以此来保持处理的“轻量级”。

当一个客户端请求相同的Key时,相同的算法也将被再次使用。相同的Key通常产生相同的哈希值,并且也将选择相同的memcached服务器作为“数据源”。使用这种方式,被缓存的数据可以在所有的memcached服务器之间传播,并且被缓存的数据在任何的客户端都是可访问的。据此可以得出这样的结论:一个分布式的,基于内存的缓存机制,返回信息,特别是复杂的数据、结构比从本地从数据库加载要快得多。

一个memcached服务器所持有的数据将永远不会存储在磁盘上(仅仅只会被存储在内存中,这意味着数据不能够被持久化)。并且“只读存储器”缓存总是从后台存储(比如一个MySQL数据库)来填充它。如果一个memcached服务器“当机”了,那么数据也能够从MySQL数据库中恢复,尽管这样做的速度比从缓存中加载信息慢得多。

在2011年四月,MySQL发布了用于InnoDB以及MySQL簇存储引擎的一个新的memcached接口的预览。

使用memcachedAPI,web服务可以直接访问InnoDB以及MySQL簇存储引擎而不需要使用T-SQL,同时能够确保低延迟和高tuntulde读写查询。那些诸如已经被淘汰的sql解析以及占用更多的服务器硬件资源(CPU、内存、I/O)操作被专门地用来服务于存储引擎本身的查询。

这些都将有针对性地纳入到未来MySQL5.6的里程碑以及MySQL集群开发的发布中去。




原文发布时间为:2011-09-22


本文来自云栖社区合作伙伴CSDN博客,了解相关信息可以关注CSDN博客。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据库
Mysql基础第五天,Mysql简介
Mysql基础第五天,Mysql简介
29 0
Mysql基础第五天,Mysql简介
|
6月前
|
关系型数据库 MySQL 数据库
阿里云rds简介和如何使用
阿里云关系型数据库服务(RDS)是一种在云端提供的高可用性、可扩展、安全的关系型数据库服务。它支持多种数据库引擎,包括MySQL、PostgreSQL、Oracle等,并提供了丰富的监控、备份、恢复、容灾等功能,帮助企业快速构建和运维高可用、高性能的数据库系统。
1548 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
49 0
|
5月前
|
SQL 关系型数据库 MySQL
07 Django模型 - ORM简介及MySQL数据库的使用
07 Django模型 - ORM简介及MySQL数据库的使用
35 0
|
2月前
|
关系型数据库 MySQL Linux
MySQL技能完整学习列表2、MySQL简介和安装
MySQL技能完整学习列表2、MySQL简介和安装
33 0
|
3月前
|
存储 缓存 关系型数据库
【面试问题】Memcached和MySQL的query cache相比,有什么优缺点?
【1月更文挑战第27天】【面试问题】Memcached和MySQL的query cache相比,有什么优缺点?
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库免费客户端简介
MySQL数据库免费客户端简介
35 0
|
3月前
|
存储 关系型数据库 MySQL
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
36 0
|
4月前
|
SQL 关系型数据库 MySQL
|
6月前
|
NoSQL Cloud Native 关系型数据库
阿里云rds数据库简介和购买使用流程
阿里云rds数据库简介和购买使用流程
183 0