PHP memcache使用

一、Memcache简介与配置

Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了降低动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品。

 

 1.1.memcache在php.ini中的配置项列表

memcache在php.ini中的配置项列表
名称默认值是否可变改变日志
memcache.allow_failover“1”PHP_INI_ALLAvailable since memcache 2.0.2.
memcache.max_failover_attempts"20"PHP_INI_ALLAvailable since memcache 2.1.0.
memcache.chunk_size"8192"PHP_INI_ALLAvailable since memcache 2.0.2.
memcache.default_port"11211"PHP_INI_ALLAvailable since memcache 2.0.2.
memcache.hash_strategy"standard"PHP_INI_ALLAvailable since memcache 2.2.0.
memcache.hash_function"crc32"PHP_INI_ALLAvailable since memcache 2.2.0.
session.save_handler"files"PHP_INI_ALLSupported since memcache 2.1.2
session.save_path""PHP_INI_ALLSupported since memcache 2.1.2

有关 PHP_INI_* 常量进一步的细节与定义参见PHP手册php.ini 配置选项。

1.2.以下是配置项的简要解释

memcache.allow_failover Boolean

在错误时是否透明的故障转移到其他服务器上处理(注:故障转移是动词)。

memcache.max_failover_attempts integer

定义服务器的数量类设置和获取数据,只联合 memcache.allow_failover 一同使用。

memcache.chunk_size integer

数据将会被分成指定大小(chunk_size)的块来传输,这个值(chunk_size)越小,写操作的请求就越多,如果发现其他的无法解释的减速,请试着将这个值增大到32768.

memcache.default_port string

当连接memcache服务器的时候,如果没有指定端口这个默认的tcp端口将被用。

memcache.hash_strategy string

控制在映射 key 到服务器时使用哪种策略。设置这个值一致能使hash 算法始终如一的使用于服务器接受添加或者删除池中变量时将不会被重新映射。设置这个值以标准的结果在旧的策略被使用时。

memcache.hash_function string

控制哪种 hsah 函数被应用于 key映射 到服务器过程中,默认值“crc32”使用 CRC32 算法,而“fnv”则表示使用 FNV-1a 算法。

session.save_handler string

通过设置这个值为memcache来确定使用 memcache 用于通信对话的处理(session handler)。

session.save_path string

定义用于通话存储的各服务器链接的分隔符号,例如:“tcp://host1:11211, tcp://host2:11211”。

每服务器个链接可以包含被接受于该服务器的参数,比较类似使用 Memcache::addServer() 来添加的服务器,例如:“tcp://host1:11211?persistent=1&weight=1&timeout=1& amp;retry_interval=15”。

 1.3.memcache常量列表

memcache常量列表
名称类型描述
MEMCACHE_COMPRESSEDinteger用于调整在使用 Memcache::set(), Memcache::add() 和 Memcache::replace() 几个函数时的压缩比率。
MEMCACHE_HAVE_SESSIONinteger如果通信对话的处理(session handler)被允许使用其值为 1,其他情况值为 0。

 

二、Memcache函数

        Memcache::add   —  增加一个条目到缓存服务器
        Memcache::addServer   — 向连接池中添加一个memcache服务器
        Memcache::close — 关闭memcache连接
        Memcache::connect — 打开一个memcached服务端连接
        Memcache::decrement — 减小元素的值
        Memcache::delete — 从服务端删除一个元素
        Memcache::flush — 清洗(删除)已经存储的所有的元素
        Memcache::get — 从服务端检回一个元素
        Memcache::getExtendedStats — 缓存服务器池中所有服务器统计信息
        Memcache::getServerStatus — 用于获取一个服务器的在线/离线状态
        Memcache::getStats — 获取服务器统计信息
        Memcache::getVersion — 返回服务器版本信息
        Memcache::increment — 增加一个元素的值
        Memcache::pconnect — 打开一个到服务器的持久化连接
        Memcache::replace — 替换已经存在的元素的值
        Memcache::set — Store data at the server
        Memcache::setCompressThreshold — 开启大值自动压缩
        Memcache::setServerParams — 运行时修改服务器参数和状态

三、Memcache 使用

一般情况下要将memcache集成到框架缓存模块中(开源程序和框架一般都已经集成),以便在程序开发中灵活运用

<?php
class cache_memcache {

	private $memcache = null;

	public function __construct() {
		$this->memcache = new Memcache;
		$this->memcache->connect(HOST, PORT, TIMEOUT);
	}

	public function memcache() {
		$this->__construct();
	}

	public function get($name) {
		$value = $this->memcache->get($name);
		return $value;
	}

	public function set($name, $value, $ttl = 0, $ext1='', $ext2='') {
		return $this->memcache->set($name, $value, false, $ttl);
	}

	public function delete($name) {
		return $this->memcache->delete($name);
	}

	public function flush() {
		return $this->memcache->flush();
	}
}
?>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值