欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php Memcached分布式缓存(1/3)

程序员文章站 2024-04-03 13:15:46
...
一. 什么是memcached

memcached 是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库教程负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。

相信很多人都用过缓存,在 .net 中也有内置的缓存机制,还有很多第三方工具如apachenginx等可以做静态资源的缓存,同时我们也可以制定自己的缓存机制,缓存数据库查询的数据以减少对数据库的频繁操作。但是很多时候我们总是感觉这些缓存总不尽人意, memcached可以解决你不少的烦恼问题。最少在我的学习中解决了我不少问题,所以决定记录下来分享。

memcached基于一个存储键/值对的hashmap。其守护进程是用c写的,但是客户端可以用任何语言来编写(本文使用c#作为例子),并通过memcached协议与守护进程通信。可 能这些东西都太高深了,我们暂不做研究。

二. 分布式缓存

其实 memcached作为一个分布式缓存数据服务,但是每个服务之间根本没有进行相互通信,这里可能与我理解的分布式有点区别,可能是我才疏学浅,也可能是每个人思考问题的角度不同。memcached 客户端就是通过一种分布式算法将数据保存到不同的memcached服务器上,将数据进行缓存。分布式缓存,可以而知memcached可以进行大数据量的缓存。这点可以弥补我们之前很多人都遇到的将数据缓存到应用服务器上,而且只能缓存少量数据,否则对应用服务器的影响非常大。
memcached应用机制图:

这个图是有点简陋了,但是问题还是能够描述的清楚的,缓存机制的基本原理就是先查询数据保存到memcached中,地址在此请求就直接从memcached缓存中取数据,这样就可以减少对服务器请求压力。

1 2 3