<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
要检验您的 PHP 构建是否已安装,请单击左侧的 phpinfo() 链接。您应当会看到类似图 2 中所示的统计信息。PHP 的版本应当是 4.4.6,构建选项应当包括 --enable-memcache,并且 php.ini 的工作版本应当驻留在 /opt/lampp/lib 中。
图 2. 检验 PHP 的自定义构建是否替换了 XAMPP 附带的 PHP 构建
图 2. 检验 PHP 的自定义构建是否替换了 XAMPP 附带的 PHP 构建
1
构建 PHP Memcache 扩展
新的 PHP 就绪后,下一步是构建和安装 PHP Memcache 扩展。该扩展将提供访问 Memcache 守护程序的服务所需的 API。首先将检索 Memcache 扩展的源代码。您可以再次使用 wget 来获得源代码,请使用以下命令:
新的 PHP 就绪后,下一步是构建和安装 PHP Memcache 扩展。该扩展将提供访问 Memcache 守护程序的服务所需的 API。首先将检索 Memcache 扩展的源代码。您可以再次使用 wget 来获得源代码,请使用以下命令:
$ wget http://pecl.php.net/get/memcache-2.1.0.tgz
构建 Memcache 扩展的过程与构建其他 PHP 扩展的过程完全相同:
切换到源代码的目录
运行 phpize,后接 ./configure、make 和 make install。
确保使用新版本的 phpize。
把 /opt/lampp/bin 放到 shell 的 PATH 中,位于包含其他版本的 phpize 的所有目录之前:
切换到源代码的目录
运行 phpize,后接 ./configure、make 和 make install。
确保使用新版本的 phpize。
把 /opt/lampp/bin 放到 shell 的 PATH 中,位于包含其他版本的 phpize 的所有目录之前:
$ cd memcache-2.1.0
$ export PATH=/opt/lampp/bin:$PATH
$ phpize
$ ./configure
$ make
...
$ sudo make install
Installing shared extensions:
/opt/lampp/lib/php/extensions/no-debug-non-zts-20020429/
构建将把一个名为 memcache.so 的新文件放入扩展目录。要加载并应用扩展,您必须编辑 php.ini。打开 XAMPP PHP 配置文件 /opt/lampp/etc/php.ini 并添加清单 3 中的代码行。
清单 3. 编辑 php.ini
清单 3. 编辑 php.ini
extension=memcache.so
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
第 1 行将加载 Memcache 扩展。其他四行是用于控制扩展的参数。按顺序,从顶部到底部:
memcache.allow_failover
一个布尔值,用于控制当连接出错时 Memcache 扩展是否故障转移到其他服务器上。默认值为 1 (true)。
memcache.max_failover_attempts
一个整型值,用于限制连接到持久性数据或检索数据的服务器数目。如果 memcache.allow_failover 为 false,则将忽略此参数。默认值为 20。
memcache.chunk_size
一个整型值,用于控制数据传输的大小。默认值为 8192 字节 (8 KB),但是如果设置为 32768 (32 KB),则可以获得更好的性能。
memcache.default_port
另一个整型值,用于设置连接到 Memcache 所使用的 TCP 端口。除非您修改它,否则默认值为无特权的高端口 11211。
要确定构建现在是否能够完全运行,请使用以下命令重新启动 XAMPP Apache Web 服务器:
memcache.allow_failover
一个布尔值,用于控制当连接出错时 Memcache 扩展是否故障转移到其他服务器上。默认值为 1 (true)。
memcache.max_failover_attempts
一个整型值,用于限制连接到持久性数据或检索数据的服务器数目。如果 memcache.allow_failover 为 false,则将忽略此参数。默认值为 20。
memcache.chunk_size
一个整型值,用于控制数据传输的大小。默认值为 8192 字节 (8 KB),但是如果设置为 32768 (32 KB),则可以获得更好的性能。
memcache.default_port
另一个整型值,用于设置连接到 Memcache 所使用的 TCP 端口。除非您修改它,否则默认值为无特权的高端口 11211。
要确定构建现在是否能够完全运行,请使用以下命令重新启动 XAMPP Apache Web 服务器:
$ sudo /opt/lampp/bin/apachectl restart
如果重新访问 XAMPP phpinfo() 页面,您应当会看到类似图 3 中的 Memcache 部分。
图 3. 通过 phpinfo() 查看 Memcache 设置
图 3. 通过 phpinfo() 查看 Memcache 设置
1
构建 Memcache 守护程序
此过程(表面上有些冗长)还有一个额外的步骤:构建和部署为数据管理 RAM 缓存的 Memcache 守护程序。守护程序依赖于 libevent,因此必须构建和部署该库,然后再编译 memcached:
此过程(表面上有些冗长)还有一个额外的步骤:构建和部署为数据管理 RAM 缓存的 Memcache 守护程序。守护程序依赖于 libevent,因此必须构建和部署该库,然后再编译 memcached:
接下来,解压缩 tarball 来为每个包生成一个目录:
要继续执行操作,请依次构建每个包,从库开始。要使所有文件包含在 /opt 中,请在运行配置时使用 --prefix 选项。下面的指令将构建和安装 libevent。
清单 4. 编辑 php.ini
清单 4. 编辑 php.ini
接下来的命令将构建和安装 memcached 二进制。
清单 5. 编辑 php.ini
清单 5. 编辑 php.ini
启动 memcached 十分简单:
-d 选项将把 memcached 作为一个守护程序而不是在最显著的位置中运行。-m number 将把 number 兆字节分配给此过程实例。(在某些系统中,可能会要求您运行多个 memcached 实例以访问可用于进行缓存的所有内存。有关更多信息,请参阅 Memcache 文档)。-l ip-address -p 11211 将使守护程序分别侦听 IP 地址 ip-address 和端口 11211。替换您的 IP 地址。如果为 memcached 选择其他端口,请确保 php.ini 将反映该端口。
缓存数据 安装后,就可以让 Memcache 运行了。
Memcache 通常用于存储对象,但是它可以存储可序列化的任何 PHP 变量,例如字符串。Memcache 有一个面向过程和一个面向对象的 API。不管您使用哪一个变量,您必须提供四个实参才能把变量存储到缓存中:
惟一关键字
关键字用于从缓存中检索相关数据。如果每条记录都有一个惟一 ID,则可能足以作为缓存关键字,但是您可以策划其他模式来满足需求。
要缓存的变量
变量可以是任意类型,只要它可以被序列化为持久的变量并且可以取消序列化为检索的变量。
用于启用通过 zlib 进行动态压缩的布尔值。
压缩将节省缓存中的内存 —— 虽然处理数据时都要以保存和恢复为代价。
以秒为单位指定的过期时间
当缓存的数据过期时,它将被自动删除。如果将此值设为 0,则该条目永远不会在缓存中过期。使用 Memcache API delete() 函数删除这样一个永久对象。
下面的代码将使用面向对象的 Memcache 扩展 API 来创建、存储和检索一个简单对象。
转载于:https://blog.51cto.com/yixiantian/159098