以前只是会用memcached做防刷控制,最近看了一些博客文章和公司一些项目对其了解加深了一步,写个笔记。
PHP提供的有memcache和memcached,至于他们的区别,建议看PHP模块:Memcached > Memcache这篇文章就有明了了。
什么是Memcached?
Memcached是国外社区网站 LiveJournal 的开发团队开发的高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
我们知道PHP的memcached中有Memcached::addServers()向服务器池中增加servers参数指定的服务器。Memcache 客户端使用 addServer 服务器池时,是根据“crc32(key) % current_server_num”哈希算法将 key 哈希到不同的服务器的,PHP、C 和 python 的客户端都是如此的算法。Memcache 客户端的 addserver 具有故障转移机制,当 addserver 了2台 Memcached 服务器,而其中1台宕机了,那么 current_server_num 会由原先的2变成1。
下面我们就来测试一下分布式,你也许说我没有那么多机子,可以参照memcached的分布式应用,
PHP与Memcache分布式
在一台或者多台机器启用一个或者多个进程,这里是在一台机器启用两个进程,使用两个端口:
# /usr/local/bin/memcached -p 11211 -d -u nobody
# /usr/local/bin/memcached -p 11212 -d -u nobody
PHP 测试代码
<?php
//连接Memcache
$mem = new Memcache;
$mem->addServer("localhost", 11211);
$mem->addServer("localhost", 11212);
$mem->add('key1', 1);
$mem->add('key2', 2);
$mem->add('key3', 3);
$mem->add('key4', 4);
然后在我们memcache pecl中的memcache.php来看着写值得分布,你就可以看出端倪了。(prc中也apc.php,以前不知道还想自己写一个的)
有关ttserver的,请参考
任何Memcached客户端均可直接调用tokyotyrant。
这里让我迷路了,我们常说的memcached是memcached.org实现的,Tokyo Tyrant 加上 Tokyo Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,可以将Tokyo Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。这一点,跟新浪的Memcachedb性质一样。这里的意思ttserver支持memcached协议,我只需要启动ttserver就可以通过使用php的memcache来使用(只需启动ttserver即可,不用启动memcache),这是我粗俗的理解。
想要深入的理解请参考http://www.google.com/cse/home?cx=016088334967758658265:ej58ey2f_s0这个自定义google引擎中有关memcache的文章。还有一些别人翻译文档。
准备写一个类似apc.php的ttserver的监控...
分享到:
相关推荐
【标题】: "深入理解memcached...综上所述,memcached和TTServer都是针对不同场景设计的高效存储解决方案,它们各有特点,适用于不同的数据处理需求。在选择使用时,应根据业务需求、数据类型和性能要求进行综合评估。
在win10系统32位和64位环境下,你需要根据PHP的版本(ts或nts)和系统位数选择正确的`php_memcached.dll`文件。确保文件与PHP安装的架构和线程安全性匹配,否则可能会导致PHP无法启动或扩展功能失效。 安装和配置...
**Memcached 1.4.12:内存缓存系统** ...综上所述,Memcached 1.4.12与PHP7的Memcache扩展是提升Web应用性能的重要工具,正确安装和配置它们,能有效优化数据访问速度,降低数据库压力,从而改善用户体验。
这里的关键技术包括`memadmin`(一个用于管理memcached的工具)、`php_memcached`(PHP语言的memcached扩展)和`memcached`服务器版本1.4.5。让我们详细了解一下这三个核心组件。 **memcached**: Memcached是一款...
包含适用于php7.0、php7.1、php7.2、php7.3、php7.4,NTS和TS,x86和x86_64各种版本。 重要说明: 1. 安装说明详见“install for windows.pdf”文档; 2. 该资源是“php_memcached”扩展(不是php_memcache扩展)!...
**PHP与Memcached扩展安装详解** 在Web开发中,PHP是一种广泛应用的开源脚本语言,而Memcached则是一个高性能的分布式内存对象缓存系统。...同时,保持PHP和Memcached的版本更新,以获得更好的兼容性和性能提升。
Memcached 扩展则是 PHP 的一个组件,它允许 PHP 脚本与 Memcached 服务器进行交互,从而实现数据的高效存储和读取。 在 Linux 环境下安装 Memcached 扩展对于提高基于 PHP 的 Web 应用性能至关重要。本文将详细...
安装php-memcached扩展 https://github.com/php-memcached-dev/php-memcached tar -zxvf ...memcached-sasl && make && make install
《PHP5.2.17与Memcached 1.4.3及php_memcache扩展的...总之,PHP5.2.17与Memcached的集成是一项常见的优化任务,通过合理的配置和使用,可以显著提升网站性能。在处理大数据量、高并发的场景下,这种集成尤其有价值。
在PHP开发中,缓存是提高网站性能的关键技术之一,Memcached是一款广泛应用的分布式内存对象缓存系统。这个“php memcached缓存操作类”旨在简化开发者对Memcached的使用,提供一个方便、高效的接口来处理数据缓存。...
### PHP安装memcached知识点 ...这使得PHP应用程序能够利用Memcached进行数据缓存,从而提升Web应用的性能和响应速度。在实际部署过程中,还需根据具体需求调整各项配置参数,以达到最佳性能表现。
本教程将深入探讨PHP与Memcached的集成和高级应用,帮助开发者优化网站性能。 一、Memcached简介 Memcached是一款开源、轻量级的分布式内存对象缓存系统,用于存储临时的数据,以减少对数据库的访问。它通过在内存...
这个资源包包含了安装PHP Memcached扩展所需的组件,特别是`php_memcache.dll`文件,这是一个Windows平台上的动态链接库,它使PHP能够理解和处理Memcached协议。在Linux或其他Unix-like系统上,这个文件可能是`...
`memcached-client.php`是PHP中用于连接和操作Memcached服务器的一个示例脚本。 在`memcached-client.php`中,首先需要创建一个`Memcached`对象实例,然后可以使用这个对象执行各种操作。例如: ```php $memcached...
Memcached PHP扩展允许PHP应用程序通过Memcached服务来存储和检索数据,以提高性能。它支持多种数据类型,包括字符串、整数和双精度浮点数。这个扩展提供了丰富的API,使得开发人员可以方便地进行添加、删除、更新和...
在PHP中使用memcached,可以使用PHP的memcached扩展,通过调用对应的函数进行数据的存取操作,例如`$memcache->get()`和`$memcache->set()`。 总结起来,PHP内存缓存技术memcached是一种强大的工具,能够显著提升...
php操作memcached类 简单实用
搭建一个基于Linux、PHP和Memcached的网站架构是一项常见的任务,尤其对于那些希望提升网站性能、减少数据库压力的开发者来说。这个压缩包包含了搭建这样一个架构所需的一些关键组件和指南。 首先,我们来看一下...
Memcached和`php_memcache.dll`是Web开发中常见的缓存解决方案,特别是在PHP环境中。Memcached是一个高性能的分布式内存对象缓存系统,用于减少数据库负载,通过在内存中存储数据来提高应用程序的性能。`...