php教程 php手册 [原创] linux 下的 memcached 开发

[原创] linux 下的 memcached 开发

Jun 13, 2016 am 09:42 AM
linux memcached 회사 곧 출시 예정 원래의 개발하다 이것

PS: 俺快给公司开了.因为公司即将倒闭.

memcached  这个东西是个十分好的东西.做为PHPer不懂用的话如果挤身于php高手之列呢.所以有此一章

在自己的LINUX 下配置好了 memcached   , 按照网上的配置访问问题都不大.网上的memcached的安装教程都挺正确的.

不过按照自己的环境要注意几点.

第一就是在安装 memcached 之前 必须先编译安装好  libevent  包.   这个有下.自己百度

第二就是  编译  libevent 包的时候记得是   ./configure --prefix=/usr         编译到   /usr 目录.

因为usr 目录下有个lib 目录.里面全都是  xx.so   xx.so.1  之类的LIB库.     

装完了libevent  以后  再开始 安装 memcached  .

装 memcached 也要注意.网上讲的也不是很好.

网上讲的是改php.ini 的 extension dir 地址.    其实只要我们在   编译生成  memcached.so 以后.放我们设置好的存放so的目录下就行了.

以上几点是我在安装时候的得到的.  自己看着办吧. 其实安装挺简单的.


然后就是使用 memcached 了.     使用memcached  有两种办法.第一种就是用pecl 包 的 memcached 模块.    不过这办法要编译.   第二种是使用 memcached-client .php 文件.  这个速度上当然不够好了.所以我选择了第一种方法.

使用memcached  其实挺简单的.不过也是看你使用的具体环境了.也有可能是复杂的.

现在我就一个一个对  pecl 的memcached 里面的方法 一个一个试.呵呵. 反正俺快没工作了.时间多......

1
Memcache::add    方法

这个方法就是在    往内存里面添加变量  挺爽看例子

 

如果变量已经存在内存中.那么就会返回 false  .  我只给出基本招式.自己灵活运用了.


Memcached:: set  方法

设置 变量在内存中的值

有参数 同   Memcached:: add  一样

1  为   变量在内存中的标志   2  为  变量的值    3为是否压缩标志   4为 变量在内存中的存活秒数

看例子吧.   昏  上不了图..太大.只能手写了

$mem = new Memcache;
$mem->connect('localhost',11211) or die("not connect");
!$mem->set('mykey','good job'') && die("not input memory");
echo($mem->get('mykey')); //没压缩前

!$mem->set('mykey','good job',MEMCACHE_COMPRESSED,50) && die("not input memory");
echo($mem->get('mykey')); // 压缩和设置了变量在内存中的存活时间
?>
压缩是否有用.如果我们把一个占字节大的变量存放在内存.当然压缩后占内存小拉.

?>

3   
Memcached :: get  方法

这个方法看名字就知道 是从内存中获取 变量 ,前面我们存过变量进去的嘛还记得吧.呵呵

使用方法很简单
看:
$mem=new Memcache;
$mem->connect('localhost',11211) or die("not connect");
if(!$mem->get('kesdy')){
    echo 'xx';
}

?>
如果要获取的变量之前没存过到内存或是已经过期.那么会返回空.

4
Memcache::connect  这个方法不用讲了吧.  看上面的所有例子都有用到.
第一个参数是:   memcache 服务器的IP地址..第二个参数是: memcache 的监听端口.  默认是11211

Memcache::pconnect   这个也不用说了吧 .. 呵呵    长连接
5  
Memcache :: replace()  方法

这个方法看名字就知道.是替换在内存中已存在的变量的值和参数等.

如果 变量在内存中已经存在 但我们想改变他的值最好就不要用 Memcache :: set () 方法.   在这种情况来说效率上  replace() 效率更快更好


上菜

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey','xxeedd');
$mem->replace('mykey','dddddddddddddd');
echo($mem->get('mykey'));
?>

上面是输出   ddddddddddddddddddddd

可以看出  给替换了吧.呵呵

6   

Memcache::increment 方法

这个是对  内存变量的值为 数值的有效.  

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey',5);
$mem->increment('mykey',2);  //这样的话   mykey  的值就自动加了 2  成了 7    
echo($mem->get('mykey'));
?>


Memcache::decrement 方法   和他刚好相反.


7  Memcache:: delete()  方法

这个方法是手动删除一个在内存中的变量.

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey',5);
$mem->delete('mykey'); //删除,还可以带个参数是  在多少秒后进行删除.    $mem->delete('mykey',50);
echo($mem->get('mykey'));
?>

够简单的了.自己看下

8

Memcache :: flush()  

使存在内存中的所有变量全部失效.

用法也很简单.

$mem = new Memcache;
$mem->connect('localhost',11211);
$mem->set('mykey',5);
$mem->flush();
?>



恩基本讲完了.懂用这几个 东西.  memcached  基本也就那样了..

下面我试下  memcached  多进程 和集群下的效果如何.

以后再做讲解了..... memcached和mysql简单综合应用.rar(8.51 KB)

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

Bitget 공식 웹 사이트 설치 (2025 초보자 안내서) Bitget 공식 웹 사이트 설치 (2025 초보자 안내서) Feb 21, 2025 pm 08:42 PM

Bitget은 스팟 거래, 계약 거래 및 파생 상품을 포함한 다양한 거래 서비스를 제공하는 Cryptocurrency 교환입니다. 2018 년에 설립 된이 교환은 싱가포르에 본사를두고 있으며 사용자에게 안전하고 안정적인 거래 플랫폼을 제공하기 위해 노력하고 있습니다. Bitget은 BTC/USDT, ETH/USDT 및 XRP/USDT를 포함한 다양한 거래 쌍을 제공합니다. 또한 Exchange는 보안 및 유동성으로 유명하며 프리미엄 주문 유형, 레버리지 거래 및 24/7 고객 지원과 같은 다양한 기능을 제공합니다.

시스템 재시작 후 UnixSocket의 권한을 자동으로 설정하는 방법은 무엇입니까? 시스템 재시작 후 UnixSocket의 권한을 자동으로 설정하는 방법은 무엇입니까? Mar 31, 2025 pm 11:54 PM

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

Gate.io 설치 패키지를 무료로 받으십시오 Gate.io 설치 패키지를 무료로 받으십시오 Feb 21, 2025 pm 08:21 PM

Gate.io는 사용자가 설치 패키지를 다운로드하여 장치에 설치하여 사용할 수있는 인기있는 cryptocurrency 교환입니다. 설치 패키지를 얻는 단계는 다음과 같습니다. Gate.io의 공식 웹 사이트를 방문하고 "다운로드"를 클릭하고 해당 운영 체제 (Windows, Mac 또는 Linux)를 선택하고 컴퓨터에 설치 패키지를 다운로드하십시오. 설치 중에 항 바이러스 소프트웨어 또는 방화벽을 일시적으로 비활성화하여 원활한 설치를 보장하는 것이 좋습니다. 완료 후 사용자는 GATE.IO 계정을 만들려면 사용을 시작해야합니다.

Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Apr 01, 2025 pm 03:06 PM

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? 램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? Apr 01, 2025 pm 02:48 PM

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

Windows 및 Linux 파일을 동기화 할 때 비교할 수없는 비교가 사례 감도에 실패하면 어떻게해야합니까? Windows 및 Linux 파일을 동기화 할 때 비교할 수없는 비교가 사례 감도에 실패하면 어떻게해야합니까? Apr 01, 2025 am 08:06 AM

비교 및 동기화의 문제점을 넘어서는 파일을 비교하고 동기화하는 문제 : Beyond를 사용할 때의 경우 민감도 실패 ...

See all articles