设为首页 收藏本站
查看: 1009|回复: 0

[经验分享] php学习笔记(二十四)php使用memcache扩展库的使用和安装

[复制链接]

尚未签到

发表于 2017-4-4 14:29:37 | 显示全部楼层 |阅读模式
<?php
/**
* Memcached(内存缓存)
* 高性能分布式内存对象缓存系统(通过内存维护一个巨大的hash表(key=>value))
* 内存维护软件(减少IO 150k 开源)
* http://localhost:11211
*
* memcached基于libevent事件库
* linux:
* 1.安装libevent
* 2.安装memcached并指定libevent的位置
* 3.使用:
* 启动:memcached -d -m 128 -l 192.168.0.1 -p 11211 -u root
* 停止:kill cat /tmp/memcached.pid
* killall memcached
* windows:
* 使用编译完成的软件
* 1.安装到系统服务中:
* 在doc中:执行此软件 memcached.exe -d install(如果提示错误,要找到cmd.exe用管理员身份打开)
*2.卸载:
* 在doc中:执行此软件 memcached.exe -d uninstall
* 3.启动服务:(默认ip是本机,端口是11211)
* memcached.exe -d start
* memcached.exe -d -m 128 -l 127.0.0.1 -p 11211 start 指定参数
* 配置参数:
* -p 监听端口
* -l 链接的ip地址,默认是本机
* -d start 启动memcached服务
*  -d restart 重启memcached服务
*  -d stop|shutdown 关闭正在运行的memcached服务
*  -d install 安装memcached服务
*  -d uninstall 卸载memcached服务
*  -u 以什么身份运行(仅在以root运行的时候有效)
*  -m 最大使用内存,单位是MB,默认是64MB,最大应该是2G
*  -M 内存耗尽时返回错误,而不是删除项
*  -c 最大同时连接数,默认是1024
*  -f 块大小增长因子,默认是1.25
*  -n 最小分配空间,key+value+float 默认是48
*  -h 显示帮助
*
* 操作memcached(命令方式telnet作为客户端)
* telnet localhost 11211 ---memcached
*
* php配置memcached文件:在ext中加入:php_memcache.dll(对于的版本要正确)
* 并修改php.ini扩展
* extension=php_memcache.dll
* [Memcache]
* memcache.allow_failover = 1
* memcache.max_failover_attempts=20
* memcache.chunk_size =8192
* memcache.default_port = 11211
*
* Memcache面向对象的常用接口包括:
* Memcache::connect 打开一个到memcache的链接
* Memcache::pconnect打开一个到memcache的长连接
* Memcache::close关闭一个Memcache的链接
* Memcache::set保存数据到memcache的服务器
* Memcache::add添加数据到memcache的服务器
* Memcache::get提取一个已保存在memcache的服务器数据
* Memcache::replace替换一个已经存在memcache服务器上的项目(功能类似memcache::set)
* Memcache::delete从Memcache服务器上删除一个保存的项目
* Memcache::flush刷新所以Memcache服务器上保存的项目(类似于删除所有)
* Memcache::getStats获取当前memcache服务器运行的状态
* Memcache::addServer分布式服务器添加一个服务器
*
*
* 何时何处使用memcache
* 一、数据库读出来的数据(select)使用memcache处理
* 二、在会话控制session中使用
*
* memcache的安全建议:
* 1.内网访问:
* memcached -d -u root -l 192.168.0.111 -p 11211
* 2.设置防火墙:
* iptables -A INPUT -p tcp -s 192.168.1.111 -dport 11211 -j ACCEPT
* iptables -A INPUT -p udp -s 192.168.1.111 -dport 11211 -j ACCEPT
*
*/
//调用memcache的测试的方法
//memcacheTest();
//调用存储查询语句的方法
memcacheSQL();
/**
* 查询数据库
* 缓存查询的数据放入memcache中
* 注意:
* 1.同一个项目的安装两次,key要有不同的前缀
* 2.sql语句可以作为缓存的下标(防止sql暴漏?)
*/
function memcacheSQL(){
//链接数据库存储select查询语句
//创建Memcache服务对象
$mem = new Memcache;
$mem->connect("localhost",11211);
$sql = "select * from users where id <12";
$key = md5($sql);
$data = $mem->get($key);
if (!$data) {
$mysql = new mysqli("localhost","root","root","hibernate");
$result = $mysql->query($sql);
$data = array();
while ($row = $result->fetch_assoc()){
$data[]=$row;
}
$result->free();
$mysql->close();
$mem->set($key,$data,MEMCACHE_COMPRESSED,60);
echo $sql;
}
echo "<pre>";
print_r($data);
echo "</pre>";
$mem->close();
}

/**
* memcache服务器
* 数据测试
*/
function memcacheTest(){
//创建Memcache服务对象
$mem = new Memcache;
$mem->connect("localhost",11211);
//添加多服务器
//$mem->addServer("www.sid.com",11221);
//$mem->addServer("192.167.1.112",11211);
//添加
$mem->add("mystr","this is a memcache test!",MEMCACHE_COMPRESSED,60);
//修改
$mem->set("mystr","this is a update memcache test!",MEMCACHE_COMPRESSED,60);
//获取
$str = $mem->get("mystr");
echo $str."<br>";
//添加数组
$mem->add("myarr",array("asdfsa","sdfsdf"),MEMCACHE_COMPRESSED,60);
//获取
$str = $mem->get("myarr");
echo $str."<br>";
//添加对象
class Per{
var $name = "san";
var $age=12;
}
$mem->add("myper",new Per,MEMCACHE_COMPRESSED,60);
//获取
$str = $mem->get("myper");
echo $str->name."<br>";
//获取服务器的相关信息
echo $mem->getVersion()."<br>";
echo "<pre>";
echo var_dump($mem->getStats());
echo "</pre>";
$mem->flush();
$mem->close();
}
?>

  附php的memcached扩展库下载(php5.2和php5.3)
  点击打开链接

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-360182-1-1.html 上篇帖子: 用 PHP 使 Web 数据分析进入更高境界 (PHP做类似流量分析) 下篇帖子: (转)PHP安全配置之实现安全的两个重点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表