- PHP教程
- PHP-主页
- PHP - 简介
- PHP-环境设置
- PHP - 语法概述
- PHP - 变量类型
- PHP - 常量
- PHP - 运算符类型
- PHP - 决策
- PHP - 循环类型
- PHP-数组
- PHP-字符串
- PHP - 网络概念
- PHP - 获取和发布
- PHP - 文件包含
- PHP - 文件和 I/O
- PHP - 函数
- PHP-Cookie
- PHP-会话
- PHP - 发送电子邮件
- PHP-文件上传
- PHP - 编码标准
- 高级PHP
- PHP - 预定义变量
- PHP-正则表达式
- PHP - 错误处理
- PHP - 错误调试
- PHP - 日期和时间
- PHP 和 MySQL
- PHP 和 AJAX
- PHP 和 XML
- PHP——面向对象
- PHP - 面向 C 开发人员
- PHP - 适合 PERL 开发人员
- PHP 表单示例
- PHP-表单介绍
- PHP - 验证示例
- PHP - 完整表格
- PHP框架作品
- PHP-框架工程
- PHP - 核心 PHP 与 Frame Works
- PHP 设计模式
- PHP - 设计模式
- PHP 函数参考
- PHP - 内置函数
- PHP 有用资源
- PHP - 问题与解答
- PHP - 有用的资源
- PHP - 讨论
PHP - Memcache 函数
Memcache 模块可以为 Memcached 提供方便的过程和面向对象的接口,Memcached 是一个高效的缓存守护进程,专门为减少动态 Web 应用程序中的数据库负载而设计。
Memcache 模块还可以提供会话处理程序 (Memcache)。
有关 Memcached 的更多信息,请访问 » http://www.danga.com/memcached/。
安装
PHP 中未包含此 PECL 扩展。可以在此处找到新版本、下载、源文件、开发人员信息和变更日志等其他信息:» https://pecl.php.net/package/memcache。
要使用这些函数,我们必须使用 --enable-memcache [= DIR] 选项编译具有 memcache 支持的 PHP。我们可以通过指定 --disable-memcache-session 来选择禁用 memcache 会话处理程序支持。
Windows 用户可以在 php.ini 中启用 php_memcache.dll 来使用这些功能。我们需要从 »PHP Downloads 或 » http://snaps.php.net/page下载此 PECL 扩展的 DLL 。
要求
Memcache 模块可以使用 » zlib 的功能来支持即时数据压缩。Zlib 需要安装此模块。
资源类型
emcache 模块中仅使用一种资源类型 - 它是缓存服务器连接的链接标识符。
PHP 4.3.3 或更高版本需要使用 Memcache 扩展。
运行时配置
这些函数的行为取决于 php.ini 中的设置。
内存缓存配置选项
姓名 | 默认 | 多变 | 变更日志 |
---|---|---|---|
memcache.allow_failover | “1” | PHP_INI_ALL | 自 memcache 2.0.2 起可用。 |
memcache.max_failover_attempts | “20” | PHP_INI_ALL | 自 memcache 2.1.0 起可用。 |
memcache.chunk_size | “8192” | PHP_INI_ALL | 自 memcache 2.0.2 起可用。 |
memcache.default_port | “11211” | PHP_INI_ALL | 自 memcache 2.0.2 起可用。 |
memcache.hash_strategy | “标准” | PHP_INI_ALL | 自 memcache 2.2.0 起可用。 |
memcache.hash_function | “CRC32” | PHP_INI_ALL | 自 memcache 2.2.0 起可用。 |
会话.save_handler | “文件” | PHP_INI_ALL | 从 memcache 2.1.2 开始支持 |
会话.保存路径 | ”” | PHP_INI_ALL | 从 memcache 2.1.2 开始支持 |
内存缓存协议 | ASCII码 | >PHP_INI_ALL | 从 memcache 3.0.0 开始支持 |
memcache.冗余 | 1 | >PHP_INI_ALL | 从 memcache 3.0.0 开始支持 |
memcache.session_redundancy | 2 | >PHP_INI_ALL | 从 memcache 3.0.0 开始支持 |
memcache.compress_threshold | 20000 | >PHP_INI_ALL | 从 memcache 3.0.3 开始支持 |
memcache.lock_timeout | 15 | >PHP_INI_ALL | 从 memcache 3.0.4 开始支持 |
有关 PHP_INI_* 常量的详细说明,请参阅可以设置配置设置的文档。
memcache.allow_failover boolean - 发生错误时是否透明地故障转移到其他服务器。
memcache.max_failover_attempts 整数- 定义设置和获取数据时要尝试的服务器数量。仅与 memcache.allow_failover 结合使用。
memcache.chunk_size 整数- 数据将以该大小的块传输,设置较低的值需要更多的网络写入。如果发现无法解释的速度下降,请尝试将此值增加到 32768。
memcache.default_port string - 如果未指定其他端口,则连接到 memcached 服务器时使用的默认 TCP 端口号。
memcache.hash_strategy string - 控制将键映射到服务器时使用哪种策略。将此值设置为一致以启用一致哈希,从而允许在池中添加或删除服务器而不会导致密钥重新映射。将此值设置为使用旧策略的标准结果。
memcache.hash_function string - 控制将密钥映射到服务器时应用哪个哈希函数,crc32 使用标准 CRC32 哈希,而 fnv 使用 FNV-1a。
session.save_handler string - 通过将此值设置为memcache,使用memcache作为会话处理程序。
session.save_path string - 定义用于会话存储的服务器 URL 的逗号分隔,例如“tcp://host1:11211, tcp://host2:11211”。每个 url 可能包含应用于该服务器的参数,它们与 Memcache::addServer() 方法相同。例如“tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15”
memcache.协议字符串
memcache.redundancy 整数
memcache.session_redundancy 整数
memcache.compress_threshold 整数
memcache.lock_timeout 整数
基本用法
在此示例中,对象被保存在缓存中,然后被检索回来。对象和其他非标量类型在保存之前会被序列化,因此不可能将资源(即连接标识符等)存储在缓存中。
实施例1
<?php $memcache = new Memcache; $memcache->connect("localhost", 11211) or die ("Could not connect"); $version = $memcache->getVersion(); echo "Server's version: ".$version."<br/>\n"; $tmp_object = new stdClass; $tmp_object->str_attr = "test"; $tmp_object->int_attr = 123; $memcache->set("key", $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds) <br/>\n"; $get_result = $memcache->get("key"); echo "Data from the cache: <br/>\n"; var_dump($get_result); ?>
使用 memcache 会话处理程序
实施例2
<?php $session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10,,tcp://$host:$port"; ini_set("session.save_handler", "memcache"); ini_set("session.save_path", $session_save_path); ?>
预定义常量
内存缓存常量
先生编号 | 名称和描述 |
---|---|
1 | MEMCACHE_COMPRESSED(整数) 用于通过 Memcache::set()、Memcache::add() 和 Memcache::replace() 打开动态数据压缩。 |
2 | PMEMCACHE_HAVE_SESSION(整数) 如果此 Memcache 会话处理程序可用,则为 1,否则为 0。 |
3 | MEMCACHE_USER1(整数) 用于通过 Memcache::set()、Memcache::add() 和 Memcache::replace() 打开用户定义的应用程序标志。 |
4 | MEMCACHE_USER2(整数) 用于使用 Memcache::set()、Memcache::add() 和 Memcache::replace() 启用用户定义的应用程序标志。 |
5 | MEMCACHE_USER3(整数) 用于通过 Memcache::set()、Memcache::add() 和 Memcache::replace() 打开用户定义的应用程序标志。 |
6 | MEMCACHE_USER4(整数) 用于通过 Memcache::set()、Memcache::add() 和 Memcache::replace() 打开用户定义的应用程序标志。 |
内存缓存功能
以下是 Memcache 功能 -
先生编号 | 功能说明 |
---|---|
1 |
该函数可以向服务器添加一个项目。 |
2 |
该函数可以将memcached服务器添加到连接池中。 |
3 |
该函数可以关闭memcached服务器连接。 |
4 |
该函数可以打开memcached服务器连接。 |
5 |
该函数可以打开/关闭调试输出。 |
6 |
此功能可以减少物品的价值。 |
7 |
该函数可以从服务器中删除一个项目。 |
8 |
该函数可以刷新服务器上所有现有的项目。 |
9 |
该函数可以从服务器检索项目。 |
10 |
该函数可以获取池中所有服务器的统计信息。 |
11 |
该函数可以返回服务器状态。 |
12 |
该函数可以获取服务器的统计信息。 |
13 |
该函数可以返回服务器的版本。 |
14 |
此功能可以增加物品的价值。 |
15 |
该函数可以打开一个memcached服务器持久连接。 |
16 |
此功能可以替换现有项目的值。 |
17 号 |
该功能可以将数据存储在服务器上。 |
18 | Memcache::setCompressThreshold() 此功能可以自动压缩大值。 |
19 |
该函数可以在运行时更改服务器参数和状态。 |