MemCached总结三:PHP的memcached管理接口
在Web系统中应用MemCached缓存技术,必须使用客户端API(PHP)进行访问,这样才能将用户请求的动态数据,缓存到memcached服务器中,来减少对数据库的访问压力。PHP中提供了用于内存缓存的过程式程序和面向对象两种方便的应用接口。
一、Unbutu系统下安装PHP中的MemCache应用程序扩展接口
sudo apt-get update
sudo apt-get install php5-memcache
重启Nginx和php5-fpm
/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart
二、MemCache面向对象的常用接口


三、接口应用
1、连接和关闭memcached服务器
<?php
//实例化Memcache类对象
$memcache = new Memcache;
//通过$memcache中connect()方法连接到指定地址指定端口的memcached服务器
$result = $memcache -> connect('127.0.0.1','11211');
if($result)
{
echo "success";
} else {
echo "fail";
}
//关闭对象(对常连接不起作用)
$memcache->close();
2、向memcached服务器中添加、重置、获取和删除数据
<?php
//实例化Memcache类对象
$memcache = new Memcache;
//连接到本机的memcached服务器
$conn = $memcache -> connect('127.0.0.1','11211');
//向本机的memcached服务器中添加一组数据
$is_add1 = $memcache -> add('name','ziqing');
//向本机的memcached服务器中添加一组数据,数组或对象将会被序列化
$is_add2 = $memcache -> add('lnmp',array('linux','nginx','mysql','php'));
//指定的key已经存在,则添加将会失败
$is_add3 = $memcache -> add('lnmp','lamp');
//返回缓存的指定的变量内容
$result1 = $memcache -> get('name');
var_dump($result1);
$result2 = $memcache -> get('lnmp');
var_dump($result2);
//设置一个指定key的缓存变量内容,如果key不存在则新添加,如果存在则将其修改
$is_set1 = $memcache -> set('age',23);
$is_set2 = $memcache -> set('name','song');
//使用replace()替换一个指定已存在key的缓存变量内容,是set()方法的别名
$is_replace = $memcache -> replace('name','songziqing');
//立即删除name项
$memcache -> delete('name');
$memcache->close();
3、添加分布式使用的多个memcached服务器,以及获取服务器的状态信息
这块内容稍后补上,因为需要配置多台memcached服务器进行实验,比较麻烦,可能要用到虚拟机,进行环境克隆。
MemCached总结三:PHP的memcached管理接口的更多相关文章
- Memcached源码分析之内存管理
先再说明一下,我本次分析的memcached版本是1.4.20,有些旧的版本关于内存管理的机制和数据结构与1.4.20有一定的差异(本文中会提到). 一)模型分析在开始解剖memcached关于内存管 ...
- 安装memcached和elasticsearch服务并systemctl管理
[root@izbp18dv3a3metugyd02qxz bin]# rpm -qa | grep memcache [root@izbp18dv3a3metugyd02qxz bin]# yum ...
- Memcached学习(三)
通过Java客户端实现与Memcached的交互,Java客户端的实现了使用了开源的Memcached-Java-Client,开源地址在GitHub上. 如下是通过该开源库实现的Memcached交 ...
- C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试
在上篇<C#开发微信门户及应用(22)-微信小店的开发和使用>里面介绍了一些微信小店的基础知识,以及对应的对象模型,本篇继续微信小店的主题,介绍其中API接口的封装和测试使用.微信小店的相 ...
- memcached学习(5). memcached的应用和兼容程序
mixi在提供服务的初期阶段就使用了memcached. 随着网站访问量的急剧增加,单纯为数据库添加slave已无法满足需要,因此引入了memcached. 此外,我们也从增加可扩展性的方面进行了验证 ...
- memcached学习(4). memcached的分布式算法
memcached的分布式 正如第1次中介绍的那样, memcached虽然称为"分布式"缓存服务器,但服务器端并没有"分布式"功能. 服务器端仅包括 第2次. ...
- memcached学习(3)memcached的删除机制和发展方向
memcached是缓存,所以数据不会永久保存在服务器上,这是向系统中引入memcached的前提. 本次介绍memcached的数据删除机制,以及memcached的最新发展方向--二进制协议(Bi ...
- Spring IOC三种注入方式(接口注入、setter注入、构造器注入)(摘抄)
IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转, Spring 框架的核心基于控制反转原理. 什么是控制反转?控制反转是一种将组件依赖关系的创建和管理置于程序外部的技 ...
- DI容器Ninject在管理接口和实现、基类和派生类并实现依赖注入方面的实例
当一个类依赖于另一个具体类的时候,这样很容易形成两者间的"强耦合"关系.我们通常根据具体类抽象出一个接口,然后让类来依赖这个接口,这样就形成了"松耦合"关系,有 ...
- 微服务-Springboot+Redis缓存管理接口代码实现
废话少说,上代码,结合代码讲解: 一.创建maven工程:导入依赖: <packaging>war</packaging><!--修改jdk的版本--><pr ...
随机推荐
- 整理Crontab 定时计划
一. 什么是crontab? crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和 ...
- CentOS7.2 多个python版本共存
1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用python -V命令查看一下是否安装P ...
- mysql 怎样先排序再分组
权游游牧族:众所周知!一句SqL语句不能先排序再分组.所以这里给出几个案例 --表结构-- create table `shop` ( `id` int (10) PRIMARY KEY, `shop ...
- lunix下的redis数据库操作——zset有序集合
创建:(有序集合存在一个权重的概念) zadd zset 1 a 2 b 3 c 4 d 5 e 6 f 7 g # 输出: # 1) "a" # 2) "b" ...
- Redis Hash 的 HSET、HGET、HMSET、HMGET 性能测试
[压测环境] 操作系统: Ubuntu 14.04 LTS Linux版本: 3.13.0-24-generic x86_64 GNU/Linux 处理器: 4核的 AMD Athlon(tm) II ...
- 0818基于360开源数据库流量审计MySQL Sniffer
开源数据库流量审计MySQL Sniffer 我最推崇的数据库安全产品就是基于流量的数据库审计,因为它不需要更改网络结构,并且也是最关键的是,不影响数据库服务器性能,不用苦口婆心的劝数据库管理员安装监 ...
- 【ACM】bailian_2703_骑车与走路_201307301543
2703:骑车与走路总时间限制: 1000ms 内存限制: 65536kB 描述 在北大校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车.开锁.停车.锁车 ...
- codevs——T1219 骑士游历
http://codevs.cn/problem/1219/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Desc ...
- mysql备份恢复中的常见错误
从A主机备份到B主机 mysqldump -uroot -p vw>vw.sql 现备份数据库文件,需要恢复到目标机B,B的数据库版本为5.5.23,A机器的mysql版本为5.0.2 ...
- java中的移位操作
java中的移位操作仅仅对; a = a << 2; System.out.println(a); System.out.println(Integer.toBinaryString(a) ...