Ubuntu下Memcache的安装与基本使用

在全世界范围内很多大负载站点采用了Memcache作缓存服务,以分担数据库服务器的压力。

这里只介绍在Ubuntu下如何配置Memcache和如何在PHP使用Memecache,对于更深入的了解,比如Memcache的运作机理或更高级的应用还是Google一下…^_^

关于Memcache与memcached

Memcache是项目名,memcached是服务名。让很多初接触的人感觉很是莫名其妙。个人认为正确的应该是用前者用更为正确一点。



安装Memcache

Memcache分为两部分,Memcache服务端和客户端。Memcache服务端是作为服务来运行的,所有数据缓存的建立,存储,删除实际上都是在这里完成的。客户端,在这里我们指的是PHP的可以调用的扩展。

1)安装Memcache服务端

sudo apt-get install memcached

安装完Memcache服务端以后,我们需要启动该服务:

memcached -d -m 128 -p 11111 -u root


这里需要说明一下memcached服务的启动参数:

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25-n 最小分配空间,key+value+flags默认是48
-h 显示帮助2)安装Memcache客户端

sudo apt-get install php5-memcache

安装完以后我们需要在php.ini里进行简单的配置,打开/etc/php5/apache2/php.ini文件在末尾添加如下内容:

[Memcache]

; 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,
; 它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。



; 是否在遇到错误时透明地向其他服务器进行故障转移。
memcache.allow_failover = On

; 接受和发送数据时最多尝试多少个服务器,只在打开memcache.allow_failover时有效。memcache.max_failover_attempts = 20

; 数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。
; 如果发现无法解释的速度降低,可以尝试将此值增加到32768。
memcache.chunk_size = 8192

; 连接到memcached服务器时使用的默认TCP端口。
memcache.default_port = 11111

; 控制将key映射到server的策略。默认值”standard”表示使用先前版本的老hash策略。
; 设为”consistent”可以允许在连接池中添加/删除服务器时不必重新计算key与server之间的映射关系。
;memcache.hash_strategy = “standard”; 控制将key映射到server的散列函数。默认值”crc32″使用CRC32算法,而”fnv”则表示使用FNV-1a算法。
; FNV-1a比CRC32速度稍低,但是散列效果更好。
;memcache.hash_function = “crc32″


保存php.ini,执行sudo /etc/init.d/apache2 restart重启Apache。

在PHP中使用Memcache

<?php
$mem = new Memcache; //创建Memcache对象
$mem->connect(”127.0.0.1″, 11111); //连接Memcache服务器

$val = “这是一个Memcache的测试.”;
$key = md5($val);
$mem->set($key, $val, 0, 120); //增加插入一条缓存,缓存时间为120s

if(($k = $mem->get(’key’))){ //判断是否获取到指定的key
echo ‘from cache:’.$k;
} else {
echo ‘normal’; //这里我们在实际使用中就需要替换成查询数据库并创建缓存.
}
?>

对于key,通常用md5 查询语句来获取,在实际使用中根据具体需要来决定好了…

通过上面的步骤,我们就完成了Memcache的配置和基本使用…

php5-memcache扩展提供的方法

Memcache::add — 添加一个值,如果已经存在,则返回false
Memcache::addServer — 添加一个可供使用的服务器地址
Memcache::close — 关闭一个Memcache对象
Memcache::connect — 创建一个Memcache对象
memcache_debug — 控制调试功能
Memcache::decrement — 对保存的某个key中的值进行减法操作
Memcache::delete — 删除一个key值
Memcache::flush — 清除所有缓存的数据
Memcache::get — 获取一个key值
Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus — 获取运行服务器的参数
Memcache::getStats — 返回服务器的一些运行统计信息
Memcache::getVersion — 返回运行的Memcache的版本信息
Memcache::increment — 对保存的某个key中的值进行加法操作
Memcache::pconnect — 创建一个Memcache的持久连接对象
Memcache::replace — R对一个已有的key进行覆写操作
Memcache::set — 添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩
Memcache::setServerParams — 在运行时修改服务器的参数

转载于:https://www.cnblogs.com/webu/archive/2012/12/15/2819173.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现超级玛丽上下左右运动

用Cocos2dx实现超级玛丽&#xff0c;首先用帧循环定时器判断方向&#xff0c;再在类中实现运行以及判断是否能运动。 方向控制 void LayerGame::moveMario(float dt) { #ifdef WIN32short key;key GetKeyState(F);if (key < 0) _marioDir Common::RIGHT;key GetKeyStat…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨大的国家【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

自动驾驶前沿报告!解密六大关键技术,全球人才分布

来源&#xff1a;智东西摘要&#xff1a;清华-中国工程院知识智能联合研究中心从技术、人才、应用和趋势的维度盘点自动驾驶的发展。从传统车企到新造车势力&#xff0c;再到互联网大佬&#xff0c;都在加注自动驾驶。自动驾驶既指向了更高效安全的交通运营系统&#xff0c;也意…

利用工厂模式实现怪物系统

利用工厂模式可以有效的降低类与类的藕合性&#xff0c;增强代码的可重用性&#xff0c;工厂模式主要通过虚函数的原理进行。 当基类指针指向一个子类对象&#xff0c;通过这个指针调用子类和基类同名成员函数的时候&#xff0c;基类声明为虚函数「子类不写也可以」就会调子类…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨好友申请 I :总体通过率【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

边缘计算技术发展与对策研究

来源&#xff1a;5G作者&#xff1a;洪学海&#xff0c;中国科学院计算技术研究所&#xff0c;中国科学院计算机网络信息中心&#xff0c;研究员&#xff1b;汪洋&#xff0c;中国科学院计算机网络信息中心。未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&a…

Android初探:LINUX(Ubuntu)下安装开发环境

第一步&#xff1a; 安装Ubuntu, 我现在装的是12.04LTS&#xff0c;12.04LTS 将得到长达5年的更新支持&#xff0c;而新出来的12.10则只有两年的更新支持&#xff0c;并且Google Android开发/源码网站上也将12.04作为支持系统之一&#xff0c;所以不推荐12.10安装完ubuntu系统后…

windows下同时安装python2与python3

由于python2与python3并不相互兼容&#xff0c;并且差别较大&#xff0c;所以有时需要同时安装&#xff0c;但在操作命令行时&#xff0c;怎么区别python2与python3呢&#xff1f; 1.下载并安装Python 2.7.9和Python 3.4.1。 2.找到Python 2.7.9的安装目录C:\Python27&#x…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨字节面试真题【难度困难】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

发布 | 2018年中美智慧城市行业研究系列报告

来源&#xff1a;桥域咨询报告链接:https://pan.baidu.com/s/1fGrtzH0nLsldDvpE04DY6A 密码:q9q2未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体…

oracle收发邮件存储过程

oracle收发邮件存储过程 2012-04-13 13:33:32| 分类&#xff1a; .NET | 标签&#xff1a; |字号大中小 订阅 CREATE OR REPLACE PROCEDURE PROC_SEND_EMAIL(P_TXT VARCHAR2, P_SUB VARCHAR2, …

commons-fileupload实现文件上传下载

commons-fileupload是Apache提供的一个实现文件上传下载的简单&#xff0c;有效途径,需要commons-io包的支持&#xff0c;本文是一个简单的示例 上传页面,注意设置响应头 <body><center><h1>文件上传页面</h1><hr><form action"${page…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨判断三角形【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨平面上的最近距离【难度中等】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

python实现统计你一共写了多少行代码

程序员要保证一定的代码量就必须勤奋的敲代码&#xff0c;但怎么知道自己一共写了多少代码呢&#xff0c;笔者用python写了个简单的脚本&#xff0c;遍历所有的.java,.cpp,.c文件的行数&#xff0c;但是正如大家所知&#xff0c;java生成了许多代码&#xff0c;所以有许多水分&…

工业机器人:四大家族垄断全球市场

来源&#xff1a;广发证券在世界工业机器人业界中&#xff0c;以瑞士的ABB、德国的库卡、日本的发那科和安川电机最为著名&#xff0c;并称工业机器人四大家族。全球机器人市场中&#xff0c;四大家族一直占据着重要位置&#xff0c;总市场份额一度超过50%以上。2015年以来由于…

Lucene正则表达式查询RegenxQuery

1 /*2 * 正则表达式查询3 */4 5 6 import java.io.IOException;7 8 import org.apache.lucene.analysis.standard.StandardAnalyzer;9 import org.apache.lucene.document.Document; 10 import org.apache.lucene.document.Field; 11 import org.apache.lucene.index.IndexWr…

pyinstaller--将py文件转化成exe

首先要注意一下:打包python文件成exe格式这个过程只能在windows环境下运行 1. 直接在命令行用pip安装 pyinstaller pip install pyinstaller</p> 2. 下载安装pyinstaler运行时所需要的windows拓展—pywin32 pywin32:http://sourceforge.net/projects/pywin32/files/p…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 9丨平均工资:部门与公司比较【难度困难】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

深度|全面了解一下这个世界上最奇葩的公司:Google!

来源&#xff1a;轮回的刻度2015年8月11日&#xff0c;Google公司架构调整的资讯与分析刷遍了朋友圈。这些数不胜数的文章&#xff0c;几乎都是这样这样一种基调&#xff1a;Google好像做了一件很重大的事情&#xff0c;但是谁也不清楚它为什么这么做。这个问题也困扰着我&…