Memcached是什么?
Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
Memcached能缓存什么?
通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
Memcached快么?
非常快。Memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态), 使用自己的页块分配器和哈希表,因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1).。 Danga Interactive为提升Danga Interactive的速度研发了Memcached。目前,LiveJournal.com每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由web服务器和数据库服务器组成的集群完成的。Memcached几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及Memcache失效时对数据库的访问速度。
Memcached的特点
Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问, 因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,磁盘开销和阻塞的发生。
MemCache的目录如下,其实代码调用非常简单,主要会用到的方法有 add()、get()、replace() 和 delete(),方法说明如下:
Memcache::add -- Add an item to the server add ($key, $val, $exp = 0) 往 memcached 中写入对象,$key 是对象的唯一标识符,$val 是写入的对象数据,$exp 为过期时间,单位为秒,默认为不限时间;
Memcache::delete -- Delete item from the server delete ($key, $time = 0) 删除 memcached 中标识符为 $key 的对象,$time 为可选参数,表示删除之前需要等待多长时间。
Memcache::get -- Retrieve item from the server get ($key)
从 memcached 中获取对象数据,通过对象的唯一标识符 $key 获取;
Memcache::replace -- Replace value of the existing item replace ($key, $value, $exp=0) 使用 $value 替换 memcached 中标识符为 $key 的对象内容,参数与 add() 方法一样,只有 $key 对象存在的情况下才会起作用;
bool Memcache::set ( string key, mixed var [, int flag [, int expire]] ) -- 保存数据到Memcache服务器上
string key:惟一关键字 关键字用于从缓存中检索相关数据。如果每条记录都有一个惟一 ID,则可能足以作为缓存关键字,但是您可以策划其他模式来满足需求。
mixed var :要缓存的变量
变量可以是任意类型,只要它可以被序列化为持久的变量并且可以取消序列化为检索的变量。
int flag :用于启用通过 zlib 进行动态压缩的布尔值
使用 MEMCACHE_COMPRESSED 来压缩信息到内存中 —— 虽然处理数据时都要以保存和恢复为代价。
int expire:以秒为单位指定的过期时间
当缓存的数据过期时,它将被自动删除。如果将此值设为 0
,则该条目永远不会在缓存中过期。使用 Memcache API delete()
函数删除这样一个永久对象。
Memcache::connect -- 打开一个到Memcache的连接 Memcache::pconnect -- 打开一个到Memcache的长连接 Memcache::close -- 关闭一个Memcache的连接 Memcache::flush -- 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目) Memcache::getStats -- 获取当前Memcache服务器运行的状态
另外为了看到所有slabs组的统计数据以及统计情况:通过telnet 127.0.0.1 11211 可以连上memcached, 键入命令 stats slabs 可以看到所有slabs组的统计数据以及统计情况了
分享到:
相关推荐
1. 协议简单:它有一个非常简单的基于文本行的协议,容易编程实现。 2. 基于libevent的事件处理:Memcached使用libevent库来处理网络事件,使得其在高并发环境下有良好的性能表现。 3. 内置内存存储方式:...
总的来说,C# MemCache监控管理工具是一款实用的开发辅助工具,它使得MemCache的管理和维护变得更加简单易行。通过熟练掌握和运用此工具,开发者可以更好地优化应用性能,提升用户体验。对于那些使用C#和MemCache的...
`memcache-info`是一个方便的Bash脚本,它提供了简单且直观的方式来获取和展示关于Memcache服务器的统计信息。这个脚本适用于那些希望在Linux或Unix环境下通过命令行界面快速检查Memcache状态的管理员。 `memcache-...
标题中的“PHP实现的...总的来说,这个PHP实现的memcache环形队列类是一个实用的工具,它结合了memcache的高性能缓存能力和环形队列的数据结构特性,可用于处理需要高效并发读写的场景,如消息队列、任务调度等。
在Windows操作系统下安装PHP的memcache模块,是一个常见且实用的过程,尤其在开发使用PHP语言编写的动态Web应用时,可以有效提高应用性能。memcache作为一种缓存机制,可以临时存储计算结果和数据库查询结果,减少...
2. **连接与操作**: 客户端库提供了连接到Memcache服务器的方法,如创建MemcachedClient实例。通过这个实例,你可以执行增删查改操作,例如`client.set(key, timeout, value)`用于设置键值对,`client.get(key)`用于...
总的来说,`memcache_lock`是一个实用的工具,对于需要在分布式系统中处理并发控制的Python开发者来说,它提供了一种简单而有效的方法。通过集成`memcached`服务,`memcache_lock`为Python应用程序带来了强大的并发...
对于开发人员来说,Memcache提供了简单易用的API,可以轻松地在各种编程语言中集成,例如PHP、Python等。 2. **Redis**: Redis是一个开源的、基于键值对的NoSQL数据库,支持多种数据结构,如字符串、哈希、列表、...
特别是memorise装饰器允许您快速简单地将 memcache 缓存添加到任何函数或方法。 安装 使用 pip 安装memorised : pip install memorised 或者使用提供的setup.py : python setup.py install 用法 要缓存一个简单...
MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 在这个项目中,Spring可能被用来管理Memcached客户端的生命周期,并提供...
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。 Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它...
7. 代码的简洁性:代码的结构简单明了,易于理解,而且代码量不大,是一个很实用的实现网站在线人数统计的代码示例。 通过上述的分析和解释,我们可以看到,使用PHP结合Memcache实现在线人数统计不仅效率高,而且...
另一个关键区别在于,memcached的`setOption`方法允许统一设置标志(flag),这是一个非常实用的设计,使得从pecl::memcache转换到pecl::memcached变得更加容易。开发者可以通过查看官方API文档(链接已提供)来了解...
Django提供了集成Memcache的简便方法,通过cmemcache模块进行配置。 10. **实践Django**:如果你对Django的功能和潜力感到好奇,不妨在下一个项目中尝试使用它,亲身体验其带来的高效开发体验。 总之,Django是一...
MCLI是Memcache Inspector的命令行界面版本,允许用户通过简单的命令来与Memcached交互,获取必要的监控信息。 开源软件是指源代码可以自由查看、修改和分发的软件。这种开放性使得全球的开发者能够参与项目的开发...
通过安装cmemcache模块,只需简单配置即可启用Memcache,显著提升网站响应速度。 10. **立即开始使用Django**:Django的强大在于它可以快速构建项目,无需过多关注设计或兼容性问题。Jeff Croft强调,Django的高...
通过"vs2019_compile_lib_MemCacheClient"这个文件,我们可以推测这是VS2019项目下的一个编译任务,用于生成名为"MemCacheClient"的库。开发者可以通过加载这个解决方案,编译项目并生成.lib文件,然后在自己的C++...
CanPHP框架(简称CP),是一个简单、自由、实用、高效的php框架。CanPHP框架以面向应用为主,不纠结于OOP,不纠结于MVC,不纠结于设计模式,不拘一格,力求简单快速优质的完成项目开发,是中小型项目开发首选php框架。...
总结来说,这个Shell脚本提供了一种简单且实用的方法来监控memcached的缓存命中率,帮助运维人员及时发现和解决问题,确保服务的稳定性和效率。对于那些不熟悉Perl或Python但又需要进行类似监控的用户,这是一个很好...
开发者可以通过简单配置或定制化设计,创建出适应不同需求的数据展示形式,如表格、图表或网格。 ### 三、强大的数据库访问能力 PowerBuilder支持多种数据库管理系统,包括Oracle、SQL Server、MySQL、DB2等,通过...