Memcache学习系列(二):Memcache和mysql交互流程操作原理说明

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

对于大型网站如facebookebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下MemcacheMySQL数据库交互过程的流程关系,了解Memcache的中间缓存层作用,从而深入了解Memcache机制原理。

Memcache
MySQL交互流程图

如上图,传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,而当有Memcache中间缓存层时,查询的是Memcache缓存数据,下面详细了解Memcache各类数据操作原理:

1查询数据(select),首先通过指定的Key查询(get)Memcache中间缓存层数据,如果存在相对应数据,则直接获取出数据结果,查询过程完全不需要查询数据库。如果不存在,则查询MySQL数据库,并以key对应value的形式将查询结果存储在Memcache缓存数据中,然后将结果返回给查询语句。

2更新数据(update),首先更新数据,然后删除相关的memcache数据(delete)

3增加数据(add),首先删除相关缓存数据,然后增加数据。

4删除数据(delete),删除数据,并删除Memcache数据。

MySQL的数据操作,主要涉及到的Memcache方法如下:

1获取get(key)
2
设置set(key, value [, expiry])
3
删除delete(key [, time])

实例:
假设一个贴子,获取贴子ID2009的值,其MemcacheMySQL交互流程如下:

$key = 'biuuu_thread_';//key前缀
$cachetime = 100;//
缓存有效时间()
$id = 2009;

Memcache基本操作过程
1
查询$result = get($key.$id);如果$result为空,则查询MySQL数据库,然后set($key.$id,$value,0,$cachetime)
2
更新delete($key.$id);
3
增加delete($key.$id);
4
删除delete($key.$id);

通过直观图和实例应该对MemcacheMySQL的交互有一个基础的掌握,其实对于应用来说,基本上就已经足够,但如果要涉及到命名空间等相对复杂的情况,Memcache的操作方式会有所不同,但不管什么样的操作,还是离不开基础操作命令,由于这是Memcache基础篇,主要是讨论Memcachemysql交互操作流程,当Memcache原理清楚以后,Memcache基本操作就是这么简单。

Memcache::add - Add an item to the server
Memcache::addServer - Add a memcached server to connection pool
Memcache::close - Close memcached server connection
Memcache::connect - Open memcached server connection
memcache_debug - Turn debug output on/off
Memcache::decrement - Decrement item's value
Memcache::delete - Delete item from the server
Memcache::flush - Flush all existing items at the server
Memcache::get - Retrieve item from the server
Memcache::getExtendedStats - Get statistics from all servers in pool
Memcache::getStats - Get statistics of the server
Memcache::getVersion - Return version of the server
Memcache::increment - Increment item's value
Memcache::pconnect - Open memcached server persistent connection
Memcache::replace - Replace value of the existing item
Memcache::set - Store data at the server
Memcache::setCompressThreshold - Enable automatic compression of large values

【SAP】ABAP——ALV显示后选择数据操作 在ALV显示后,可全选、全不选或者选择几条数据进行发邮件、更新、下单等等操作。 在user_command中的实现方式如下: 方式一: FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield. DATA: lr_grid TYPE REF TO cl_gui_alv_grid. DATA: lt_rows TYPE lvc_t_row WITH 阅读详情

相关推荐

Ruoyi-Cloud-Plus新手必看:Gateway启动失败的两种解决方案(Nacos配置空间问题)

本文详细解析了Ruoyi-Cloud-Plus框架中Gateway启动失败的常见原因及解决方案,重点围绕Nacos配置空间问题展开。针对新手开发者,提供了两种实用方案:快速切换到public空间或规范创建dev空间并迁移配置,帮助开发者高效解决网关启动故障,确保微服务项目顺利运行。

weixin_30872499的博客 474

Memcachemysql交互流程操作原理说明

Memcachemysql交互流程操作原理说明 分类: PHP2011-02-22 22:16 141人阅读 评论(0) 收藏 举报 对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度减少数据库压力,这里主要讨论一下MemcacheMyS

819

CAN:CANape使用Function处理数据

CANape中的function and script习惯称之为脚本(实际为函数脚本)。这里介绍function,可以实现简单信号a信号b乘法,比如计算功率(转速与扭矩乘)。该功能前期有专业人员做支援,当时问其编制方法,其回答是看帮助文件。现在没有支援自己动手。 功能描述:电压信号阶梯增加,每次保持1.5s,测量后0.5s位移平均值(假设信号步长10ms,需要取样50个点,但该脚本中点的数目为10个)。图示如下: 刚开始看了软件Function definition→Library function,

Morven 1万+

Memcache基础篇 Memcachemysql交互流程操作原理说明

http://wenku.baidu.com/view/607cf3d5b9f3f90f76c61b79.html

sxjk1987的专栏 952

[原创]Memcache的使用协议分析详解

 Memcache的使用协议分析详解作者:heiyeluren博客:http://blog.csdn.net/heiyeshuwu时间:2006-11-12关键字:PHP Memcache Linux 缓存Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。(关于Memc

heiyeluren的blog(黑夜路人的开源世界) 4万+

memcache mysql proxy,Memcachemysql交互流程操作原理

对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度减少数据库压力,这里主要讨论一下MemcacheMySQL数据库交互过程的流程关系,了解Memcache的中间缓存层作用,从而深入了解Memcache机制原理MemcacheMySQL交互流程图如上...

weixin_32260467的博客 97

Memcache技术学习系列技术文章整理收藏

  《Memcache技术学习系列分享专栏 《Memcache技术学习》已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201744.html 简介 文章 PHP memcache扩展的三种安装方法 Red Hat Enterprise Linux 4+Nginx 0.7.47+PHP5.2+MYSQL5.0+Memcache+...

hello_katty的专栏 1272

memcache的简单介绍使用

memcache简单入门

bulelemon的博客 6519

10-memcache集群原理、缓存实现

memcache集群 1. 实验准备 1)服务器规划 主机 IP 角色 host1 192.168.1.115 客户机 host2 192.168.1.116 magnet 1 host3 192.168.1.118 magnet 2 host4 192.168.1.117 memcache主 host5 192.168.1.131 memcache从 2)需要...

weixin_43557605的博客 295

memcache学习路线图

memcache学习材料 //memcache自带的github 上的 wiki //席剑飞 Memcache(MC)系列 1~8系列 评注: memcache系统写的最深的一博客,建议一读。 http://blog.csdn.net/xifeijian/article/details/21994941 //mysqlmemcache的使用 https://d...

weixin_30540691的博客 86

php mysql memcache_php的memcachememcached扩展区别

老生长谈的问题了。我这里就整理一下。首先看下时间,memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的。所以memcache的历史比memcached早。在安装memcache扩展的时候并不要求安装其他东东,但是在安装memcached的时候会要求你安装libmemcached,问题来了,lib...

weixin_34640844的博客 147

MemCache详细解读

MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCache是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。

一个老码农 1450

Memcache 学习笔记(一)----Memcache — Linux部署

  Memcache 一、Memcache简介(内容摘自 --百度百科)   memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、   需要频繁访问数据库的网站访问速度提升效果十分显著 。这是一套开放源代码软件,以BSD license授权发布。官方网址:http:...

de0708的博客 183

MemCache学习(一)——初识MemCache

MemCache学习(一)——初始MemCacheMemCache是什么MemCache是一个高性能的分布式的内存对象缓存系统。它通过在内存里维护一个巨大的hash表,来存储各种格式的数据,包括图像、视频、文件以及数据库的检索结果。为什么要用MemCache使用MemCache的原因非常简单,因为内存的访问要比硬盘快得多。把各种格式从内存调用到内存中。然后哦难怪内存中读取所需要的数据,将会大大提高访

sinat_33994744的博客 462

Linux学习笔记---LNMP部署及memcache缓存服务器

这篇博文主要来讲memcache缓存服务器。 一) memcache简介: MemCache 是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库的负载。它通过在内存中缓存数据对象来减少读取数据库的次数, 从而提高了网站访问的速度。 MemCache 实现原理: 首先要说明一点,MemCache 的数据存放在内存中 1、访问数据的速度比传统的关系型数据...

小吕学Linux的博客 443

php学习_第17章_memcache

--什么是memecache memcache是一个c/s架构的软件,它通过维护的一张hash表提供内存维护服务,它是一个高性能的分布式的内存对象缓存系统。 --什么地方使用memcache 数据库(使用select语句)读出来的数据使用memcache处理。 会话控制session中使用memcache(存储用户数据)。 ...

weixin_33871366的博客 82

追求性能极致 - Redis:Redis or MemCache

本文做了比较详细的介绍比较,总的来说Redis基本覆盖Memcache的能力。这也是为什么现在的互联网缓存组件优先选择Redis的原因。

smart_an的专栏 1125

memcache、redis原理对比

(学习留存,如有侵权,请告知,立刻删除!) 一、问题: 数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求。 、解决方案: 1.通过高速服务器Cache缓存数据库数据 2.内存数据库 (这里仅从数据缓存方面考虑,当然,后期可以采用Hadoop+HBase+Hive等分布式存储分析平台) 三、主流解Cache...

zhaoyanmi的博客 299

PHP学习memcache集群相关

集群架构方面的问题 1、memcached是怎么工作的? 2、memcached最大的优势是什么? 3、 memcachedMySQL的query cache相比,有什么优缺点? 4、 memcached服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺点? 5、 memcached的cache机制是怎样的? 6、 memcached

fwkjdaghappy1的专栏 2432

Memcache分布式部署方案

前言应该是很久之前,我开始研究Memcache,写了一系列学习心得,比如《Discuz!的Memcache缓存实现》等。后面的好几十条回复也让这篇文章成为了此博客中颇受关注的一员。 同时在百度Google,关键词Memcache在长达一年多的时间里占据着第位(第一位是官方),为很多需要了解或者应用Memcache的朋友提供了一些信息,但是我始终觉着还不够,于是本文诞生。 唠唠叨叨说...

java 帝国 215

【Redis 系列】Redis 学习——数据库的演进及 Nosql 的初步认知

为什么要用 Nosql ? 咱们一起来看看数据库的发展过程 1、单机的 MYSQL 时代 应用访问数据库是 应用 – DAL 数据库访问层 – DB 数据库 在单机的 MYSQL 时代,数据都不会太大,而且网页也是静态网页,一般网站的访问量也小,因此单数据库就完全够用了 上面这种网站,瓶颈就会很明显: 数据量变得大了,一个机器放不下如何处理 数据的索引 (B+ Tree),一个机器的内存放不下了如何处理 读写的访问量,一个服务器承受不了了如何处理 随着历史进程的演进,上面这种网站必然会面

守夜人爱吃兔子的博客 226

Java全栈学习路线-狂神说

成为一个合格的工程师需要 1~3 年时间,最好的学习方法就是找经典的书籍系统地学习,而不要遇到一个问题到网上搜搜然后就解决了事。例如 Java 的各种数据结构的实现原理,因为只有深入掌握了这些实现原理,才能对其优缺点使用场景有深刻理解,这样在做具体方案设计的时候才能选择合适的数据结构。针对技术深度,我的建议还是系统地学习,包括看书研究源码。

PP 651
上一篇: Memcache的学习系列(一):Memcache工作原理
下一篇: Memcache学习系列(三):memcache和memcached安装过程
hzcyclone
博客等级 码龄19年 44粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值