[原创] 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)

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

Linux 터미널에서 Python 사용 ...

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