memcached
veaglefly
这个作者很懒,什么都没留下…
展开
-
memcached介绍和基本命令
【介绍】:Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据 库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。【特点】:1.原创 2015-05-28 15:04:23 · 4880 阅读 · 0 评论 -
使用memcached加速web应用实例
在实际应用中,通常会把数据库查询的结果保存到memcached中,下次访问数据库时直接从memcached中获取,而不再进行数据库操作,这样很大的程度上减轻了数据库的负担。【示例】:<? $mc = new Memcache(); //创建memcache对象 $mc ->connect('127.0.0.1',11211);原创 2015-07-07 14:52:05 · 1423 阅读 · 0 评论 -
memcached分布式布置方案
引入:当一台memcached服务器不能满足我们的要求时,需要布置多台服务器,那么问题来了,怎么确定一个数据该放在哪台服务器上呢?一般有两种方案,一个是普通hash分布,另一个是一致性hash分布。1. 普通hash分布 函数如下:functionmHash($key){ $md5 = substr(md5($key),0,8); $seed =原创 2015-07-07 16:14:05 · 1046 阅读 · 0 评论 -
深入理解memcached,高并发、懒惰与LRU(一)
1. Memcached如何支持高并发 Memcached使用多路复用I/O模型。传统阻塞I/O中,系统可能随时因为某个用户连接还没做好I/O准备而一直等待,知道这个连接做好准备。如果这是有其他的用户连接服务器,就很可能因为系统阻塞得不到响应。而多路复用I/O是一种消息通知模式,用户连接做好I/O准备后,系统才会通知我们这个连接可以进行I/O操作。这样就不会阻塞在某个用户连接原创 2015-07-07 15:03:23 · 5917 阅读 · 0 评论 -
memcached内存分配机制
在C中,使用malloc分配内存时会产生内存碎片,即空闲零碎的空间无法利用。Memcached中的Slab Allocator机制缓解这一问题。基本原理:按照预先规定的大小,将内存分成数个slab仓库,然后将各仓库分割成特定长度的块(chunk),并把尺寸相同的块分成组,以完全解决内存碎片问题Memcached根据收到的数据的大小,选择最适合数据大小的slab。Memcac原创 2015-05-28 15:17:20 · 769 阅读 · 0 评论 -
memcached的LRU删除机制前篇
前言:当memcached中有100bytes的数据要存,但是122大小的仓库中chunk满了。并不会寻找更大的仓库去存储,而是把122仓库的旧数据T掉,这就是数据过期与删除机制。1. 当某个值过期之后,并没有从内存中删除,在使用stats命令时,发现curr_items 依然存在。只是当你去get,取数据的时候为空,才会删除,然后在查看stats,显示正确的curr_items。也就是没有原创 2015-07-07 14:57:58 · 776 阅读 · 0 评论