memcached的应用

在配置所有的memcached应用之前必须先准备LNMP环境(这里不再赘述LNMP的搭建)

第一种应用场景:

php的memcache扩展介绍:

php有两个memcache的扩展: php memcache 和 php memcached。 php memcache独立用php实现,是老版客户端,从我们实践中已发现有多个问题,而且功能少,属性也可设置的少;php memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为php memcached。

php memcache 扩展的缺点:

1.分布式问题

php memcache默认会自动切换实例,所以有时取到老数据,并且value飘忽不定。

2.高并发下稳定性问题

php memcache换成php memcached,在高并发下稳定下极大提高;

3.秒超时间隔没法修改问题

php memcache客户端有个1秒超时间隔没法修改问题:bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )第三个参数本来可设置timeout,单位秒,但无法修改。

测试了以下三种修改timeout的方法都无效:

用memcache api Memcache::setServerParams不能修改。

改memcache 源代码vi php_memcache.h宏定义不能修改。

php.ini内这个配置:default_socket_timeout = 60对本timeout无效。

4.php memcache这个老客户端在属性设置方面可设置的很少,出错码粒度很粗,出错后难以定位,而且功能欠缺一些。

安装php的memcached扩展:

1.安装libmemcached(memcached的库)

# tar -xf libmemcached-1.0.16.tar.gz

# cd libmemcached-1.0.16

# ./configure  --prefix=/usr/local/libmemcached --with-memcached

# make && make install

2.安装php memcached扩展

# tar -xf memcached-2.2.5.tgz

# cd memcached-2.2.5

# /usr/local/php/bin/phpize

# . /configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache  --with-libmemcached-dir=/usr/local/libmemcached   --disable-memcached-sasl

# make && make install

3.在/etc/php.d/目录下创建php memcached扩展的配置文件

#vim /etc/php.d/memcached.ini

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcached.so

#service php-fpm restart

4.而后对memcached功能进行测试,在网站根目录下建立测试页面test.php,添加如下内容:

<?php

$mem = new Memcache;

$mem->connect("127.0.0.1", 11211)  or die("Could not connect");

$version = $mem->getVersion();

echo "Server‘s version: ".$version."<br/>\n";

$mem->set(‘testkey‘, ‘Hello World‘, 0, 600) or die("Failed to save data at the memcached server");

echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";

$get_result = $mem->get(‘testkey‘);

echo "$get_result is from memcached server.";

?>

PS: 如果有输出“Hello World is from memcached.”等信息,则表明memcache已经能够正常工作。

安装php的memcache扩展:

PECL 简介

PECL 的全称是 The PHP Extension Community Library ,是一个开放的并通过 PEAR(PHP Extension and Application Repository,PHP 扩展和应用仓库)打包格式来打包安装的 PHP 扩展库仓库。通过 PEAR 的 Package Manager 的安装管理方式,可以对 PECL 模块进行下载和安装。与以往的多数 PEAR 包不同的是,PECL 扩展包含的是可以编译进 PHP Core 的 C 语言代码,因此可以将 PECL 扩展库编译成为可动态加载的 .so 共享库,或者采用静态编译方式与 PHP 源代码编译为一体的方法进行扩展。PECL 扩展库包含了对于 XML 解析,数据库访问,邮件解析,嵌入式的 Perl 以及 Pthyon 脚本解释器等诸多的 PHP 扩展模块,因此从某种意义上来说,在运行效率上 PECL 要高于以往诸多的 PEAR 扩展库。

pecl常用选项:

  • search      ###查找一下模块
  • info          ###查看模块信息
  • install       ###安装查找到的模块

1.使用pecl安装memcache模块:

# /usr/local/php/bin/pecl  install  memcache

# vim  /etc/php.d/memcache.ini      ###为php memcache 扩展提供配置文件

extension = "memcache.so"

memcache.chunk_size = 32768

# service  php-fpm restart

# php -m | grep memcache             ###查看php已经安装的扩展模块

2.使用pear安装memcache模块:

# wget http://pear.php.net/go-pear.phar     ###下载模块

# /usr/local/php/bin/php  go-pear.phar       ###安装模块

# /usr/local/php/bin/pear  install  memcache

# service php-fpm  restart

PS:Pear,Pecl都是PHP扩展模块的集合。扩展PHP有两种方法:一种是用纯粹的PHP代码写函数和类。Pear就是这样一个项目。PEAR是PHP的官方开源类库(PHP Extension and Application Repository的缩写)。Pear在英文中是梨子的意思。PEAR将PHP程序开发过程中常用的功能编写成类库,涵盖了页面呈面、数据库访问、文件操作、数据结构、缓存操作、网络协议等许多方面,用户可以很方便地使用。它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR就是PHP的cpan。其主页是pear.php.net。另外一种是用c或者c++编写外部模块加载至php中。Pecl(The PHP Extension Community Library)就是干这个事的,PHP的标准扩展,可以补充实际开发中所需的功能。所有的扩展都需要安装,在Windows下面以DLL的形式出现;在 linux下面需要单独进行编译,它的表现形式为根据PHP官方的标准用C语言写成,尽管源码开放但是一般人无法随意更改源码。其主页是 pecl.php.net。最直接的表述:Pear是PHP的上层扩展,Pecl是PHP的底层扩展。这两种方法其实都是为特定的应用提供现成的函数或者类,本质上来说都是一样的。知道上面2个区别,对于我们安装就很方便理解了。我们一般用*.so文件扩展,需要运行:pecl。一般常用的还是使用pecl扩展。

时间: 2024-10-05 23:26:36

memcached的应用的相关文章

关于win下Memcached安装步骤

2天对我来说有点煎熬..数据量达到17w的时候 我本地执行查询速度特别慢! 请教了一些php大牛如何解决速度问题,在加了索引和优化sql后还是速度慢!我决定在win环境下用Memcached和memcache 来处理,先声明一下: memcache是php的拓展,memcached是客户端,复杂的说:Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了降低动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品. 因为我本地用的是xampp集

memcached安装

今天有台服务器需要迁移业务安装memcached,以前没有安装过,按照网上步骤尝试了下,并且记录了安装过程. 安装包准备: libevent-1.4.14b-stable.tar.gz memcached-1.4.5.tar.gz 首先安装libevent: tar zxvf libevent-1.4.14-stable.tar.gz -C /usr/local/ cd libevent-1.4.14-stable/ ./configure -prefix=/usr/libevent make

Linux下安装搭建Memcached集群环境

Linux下安装搭建Memcached集群环境

linux编译安装memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以 用任何语言来编写,并通过memcached协议与守护进程通信. 1.memcached安装: 安装开发包:yum -y install gcc 安装memcached相应依赖组件: yum -y ins

(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式

为什么要实现搭建tomcat集群环境呢?主要因为单个tomcat无论从吞吐量和并发数上,会达到一定的极限.如果访问量超过单个tomcat的承受能力的话,tomcat一般要么拒绝提供服务,要么直接宕掉.所以,必须要依靠tomcat集群技术.举个最简单的例子,拿"送快件"比喻,如果一个人,5分钟送一件,一小时之内,送10个,一个人完全能胜任这项工作.假设现在到了双十一,要求1小时,送100个, 那怎么办?只能安排更多的人加入"送快件"这项工作中来.这其实和集群一个道理.

修改memcached服务的端口号

windows下修改memcached服务的端口号(默认端口:11211) 如果不是作为服务启动memcached的话,memcached -p 端口号就可以了. 通过修改注册表可以简单实现 运行:regedit打开注册表,搜索memcached或者按下面的目录查找: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server 其中的ImagePath项的值为:"c:\memcached\memcached.exe&

基于nginx+tomcat的负载均衡以及memcached解决交叉存储

nginx是以多进程的方式工作的,有一个master进程和多个worker进程master进程用来管理worker进程(1)向各worker进程发送信号(2)监控worker进程,当一个worker进程出现异常后,会启动新的worker进程. master进程会先建立好需要监听的socket,fork函数生成子进程workers,继承scoket,一般来讲,当有连接进入后,所有accept在这个socket上面的进程都会收到通知,而只有一个进程会accept这个连接,其它都会失败.  --->

第八章 企业项目开发--分布式缓存memcached

注意:本节代码基于<第七章 企业项目开发--本地缓存guava cache> 1.本地缓存的问题 本地缓存速度一开始高于分布式缓存,但是随着其缓存数量的增加,所占内存越来越大,系统运行内存越来越小,最后系统会被拖慢(这一点与第二点联系起来) 本地缓存存于本机,其缓存数量与大小受本机内存大小限制 本地缓存存于本机,其他机器的访问不到这样的缓存 解决方案:分布式缓存 Jboss cache:缓存还存于本机,但是会同步更新到其他机器(解决了第三个问题,解决不了第一和第二个问题),如果缓存机器数量很多

memcached完全剖析–1. memcached的基础

系列文章导航: memcached完全剖析–1. memcached的基础 memcached全面剖析–2. 理解memcached的内存存储 memcached全面剖析–3. memcached的删除机制和发展方向 memcached全面剖析–4. memcached的分布式算法 memcached全面剖析–5. memcached的应用和兼容程序 翻译一篇技术评论社的文章,是讲memcached的连载.fcicq同学说这个东西很有用,希望大家喜欢. 发表日:2008/7/2 作者:长野雅广(

memcached全面剖析--4

memcached的分布式算法   memcached的分布式 正如第1次中介绍的那样, memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能. 服务器端仅包括 第2次. 第3次 前坂介绍的内存存储功能,其实现非常简单. 至于memcached的分布式,则是完全由客户端程序库实现的. 这种分布式是memcached的最大特点. memcached的分布式是什么意思? 这里多次使用了“分布式”这个词,但并未做详细解释. 现在开始简单地介绍一下其原理,各个客户端的实现基本相