关于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", 11211); //连接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 — 在运行时修改服务器的参数
os: ubuntu 10.04
1. 下载解压,安装libevent
mkdir ~/src
cd ~/src
wget http://www.monkey.org/~provos/libevent-2.0.10-stable.tar.gz
tar xzvf libevent-2.0.10-stable.tar.gz
cd libevent-2.0.10-stable
./configure --prefix=/usr
make
sudo make install
cd ..
2.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
3. 下载解压, 安装memcached
wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
tar xzvfmemcached-1.4.5.tar.gz
cdmemcached-1.4.5
./configure --with-libevent=/usr
make
sudo make install
cd ..
4.测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
5.启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址127.0.0.1,
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
6.如果要结束Memcache进程,执行:
# kill 'cat /tmp/memcached.pid'
也可以启动多个守护进程,不过端口不能重复。
7.重启web服务
/etc/init.d/lighttpd -f lighttpd.conf restart
8. Memcache环境测试:
telnet localhost 11211
//
保存
set
good 32 0 10
helloworld
STORED
//
取回
gets good
VALUE good 32 10 10
helloworld
END
//
替换
replace good 32 0 10
worldhello
STORED
get good
VALUE good 32 10
worldhello
END
//
尾部添加
append good 32 0 5
after
STORED
get good
VALUE good 32 15
worldhelloafter
END
//
头部添加
prepend good 32 0 6
before
STORED
get good
VALUE good 32 21
beforeworldhelloafter
END
//
删除
delete good
DELETED
get good
END
安装服务器
sudo apt-get install memcached$ memcached -d -m 50 -p 11211 -u root参数说明 -m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行
安装php 模块
sudo apt-get install php5-memcache
编辑配置文件
$ sudo vim /etc/php5/conf.d/memcache.ini
; uncomment the next line to enable the module
extension=memcache.so
[memcache]
memcache.dbpath="/var/lib/memcache"
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'This is a memcached test!', 0, 60);
$val = $mem->get('key');
echo $val;
分享到:
相关推荐
本人是UBUNTU 的操作系统,但是全部是用源码安装的,可能有些细节不一样,但总体应该没问题, 我两台虚拟机上,成功共享session apache+tomcat+memcached 全配置 apache+tomcat+memcached 全配置 apache+tomcat+...
Ubuntu Linux 下配置Memcached环境,有客户端测试代码,用的开发工具是Eclipse而不是MyEclipse
如需重新配置11211端口的服务 需要关闭已开启的memcached服务 手动启动: memcached -d -m 128 -p 11211 -u memcache 这里需要说明一下memcached服务的启动参数: -p 监听的端口 -l 连接的IP地址,
memcached, cookbook memcached的开发库 memcached-cookbook 提供用于安装memcached实例的自定义资源。 还附带了默认的菜谱,它使用属性来配置主机上的单个memcached实例。要求平台debian/ubuntu和衍生产品RHEL和...
本文主要总结了在Ubuntu10下常用...为进一步配置和实现LNMJ和LAMJ架构(负载均衡与集中式Memcached集群)进行前期准备。本文记录了安装过程经常出现的错误,并提供了解决办法,具有很好的实用性,是居家旅行必备之良品。
为进一步配置和实现LNMJ和LAMJ架构(负载均衡与集中式Memcached集群)进行前期准备。本文记录了安装过程经常出现的错误,并提供了解决办法,具有很好的实用性,是居家旅行必备之良品。 主要内容有: VirtualBox4.0的...
VPS安装程序适用于Ubuntu 16.04 VPS(虚拟专用服务器)的自动安装程序脚本特征安装和配置bash(带有主题) 安装和配置oh-my-zsh(带有主题) 安装MySQL 5.7 安装PostgreSQL 9.6 安装MongoDB 3.6 安装Memcached 安装...
安装和配置。 用法 技术支持 的Ubuntu RHEL 依存关系 名称 描述 旨在帮助编写可重复使用的菜谱的菜谱。 旨在抽象化服务管理。 属性 所有属性都是开箱即用的Memcached支持的设置。 如果还有其他您想看的内容,请...
灯罩这是一个DevOps项目,用于从云中下载Ubuntu 16.04 Desktop vagrant box,安装Apache2,将其配置为通过HTTP服务网页,然后使用HTTPS,安装memcached和PHP,将Apache2重新配置为服务PHP页面而不是.html。...
nginx的安装和配置其实很简单,nginx本身非常轻量级, 直接 sudo apt-get install nginx 就可以了 他的配置文件是在/etc/nginx/里面,网站项目路径是在/var/www里面,安装之后一定要确保nginx的启动账户有对网站目录...
DebianLNMP是一个用Linux Shell编写的可以为Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。DebianLNMP 是以 Debian + Linux + Nginx + MySQL + PHP 的安装顺序命名...
这里的安装脚本可以帮助您快速的安装好 Seafile 服务器,并配置好 MariaDB, Memcached, WebDAV, Ngnix 和开机自动启动脚本。 使用步骤 安装干净的 Ubuntu 16.04/18.04 或 CentOS 7/8 系统,并做好镜像 (如果安装失败...
它可以安装和配置在生产Django部署中常用的以下应用程序: Nginx的独角兽PostgreSQL导师虚拟环境记忆快取芹菜兔子MQ 默认设置存储在roles/role_name/defaults/main.yml 。 特定于环境的设置位于env_vars目录中。 还...
该项目的目标不是成为现代配置管理实用程序(例如Chef或Puppet)的自动化替代品,而是使初学者Graphite用户尽可能轻松地开始并熟悉该项目,而不必学习一套其他与自动化和/或基础架构相关的项目。 生成的Graphite ...
安装先决条件: sudo apt-get install ruby-redcarpet ruby-memcache-client memcachedsudo service memcached start在您的 cgi-bin 目录中安装Markdown.cgi sudo cp Markdown.cgi /usr/lib/cgi-binsudo chmod +x /...
带有已编译 Ruby 2.0.0-p645、2.1.6、2.2.2 的 RVM MySQL、PostgreSQL、Redis 和 Memcached 用于 pg、mysql2、rmagick、curb 和其他 gem 的开发库如何安装安装 安装接下来只需在终端命令中执行:Ubuntu 14.04 $ ...
请参考官方的《 OpenStack配置和安装指南》,以获取有关OpenStack集群的操作和管理的更详细的文档: 要求主厨15岁或以上Chef Workstation 21.2.303用于测试(还包括用于解决烹饪书依赖关系的berkshelf)平台ubuntu ...
安装以创建和配置轻量级和可移植的开发环境。 将 for ssh 安装到您将要拥有的开发机器中。 安装并使用 GitBash 安装 laravel/homestead:为此,请按照此显示的步骤进行操作。 或者, 为虚拟 PHP 应用程序开发环境...
PHP56,PHP72 / Nginx / MySQL / MongoDB / Redis / Memcached 视频教程: 目录结构: ...1.安装必要的工具 苹果电脑 Linux Ubuntu 2.下载KFKDock原型内置容器 #进入用户目录 cd ~/ #下载源码 git cl
成就成就要求PHP> = 5.4 + Mcrypt MySQL的作曲家Git(用于安装完成的应用程序) 您可以设置Homestead,一种虚拟机,允许您在包括Ubuntu 14.04,Nginx,MySQL,PostgreSQL,Redis,Memcached等在内的任何系统...