热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

memcachemysqlphp_Mysql入门使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

《Mysql入门使用Memcache缓存mysql数据库操作的原理和缓存过程浅析》要点:本文介绍了Mysql入门使用Memcache缓存mysql数据库操作的原理和缓

《Mysql入门使用Memcache缓存mysql数据库操作的原理和缓存过程浅析》要点:

本文介绍了Mysql入门使用Memcache缓存mysql数据库操作的原理和缓存过程浅析,希望对您有用。如果有疑问,可以联系我们。

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

Memcache和MySQL交互流程图MYSQL入门

45d02b848cd5d5f290186941172853a3.pngMYSQL入门

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

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

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

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

4. 删除数据(delete),删除数据,并删除Memcache数据.MYSQL入门

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

1. 获取:get(key)

2. 设置:set(key, value [, expiry])

3. 删除:delete(key [, time])MYSQL入门

实例:

假设一个贴子,获取贴子ID为2009的值,其Memcache与MySQL交互流程如下:

MYSQL入门

代码如下:

$key = ‘biuuu_thread_';//key前缀

$cachetime = 100;//缓存有效时间(秒)

$id = 2009;

Memcache基本操作过程MYSQL入门

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);MYSQL入门

2bbad469cc0826179bdd00b6d70ac8c7.pngMYSQL入门

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



推荐阅读
  • ubuntu 下php的mysql 扩展模块
    2019独角兽企业重金招聘Python工程师标准之前php与nginx环境已经搭建好了。但是php还没有集成mysql。没数据库啥也玩不转。放假下午在家没事便开始搞。开始谷歌 ... [详细]
  • yii框架目录结构详细分析说明
    php教程|php手册yii,目录结构php教程-php手册yii框架目录结构详细分析说明猫狗大战源码,华为云电脑ubuntu,梦见放走很多爬虫,parttmpphp,seo页面描 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • nosql数据库的基本要求Nosql全称是NotOnlySQL,是一种不同于关系型数据库的数据库管理系统设计方式。对NoSQL最普遍的解释是“非关系型的”,强调Key-ValueS ... [详细]
  • 我是做产品的,自己平时也做点技术,不过在职业技术人员面前都是不值一提的东西,为了方便以后查阅,索性用DZ搭了个论坛,把网上的一些教程,自己重新编辑后,存在了论坛上。积累技术经验之余,也发现了不 ... [详细]
  • C1、缓存的意义说到分布式系统基本上就离不开缓存,在高并发,大流量的场景下缓存更是扮演着重要的角色。所以作为一个分布式系统的开发人员是必须熟练掌握缓存的使用与设计。下面是一张简单的 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
author-avatar
黄晓敏3023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有