搜尋
首頁後端開發php教程PHP缓存之模块缓存(APC)_PHP教程

PHP缓存之模块缓存(APC)

APC是Alternative PHP Cache的简称,是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。

1、PHP配置APC

开启APC模块,需要将 extension=php_apc.dll 前面的注释去掉即可。
APC模块的配置参数如下:

apc.enabled

类型:布尔型
apc.enabled 可以被设成 0 来禁用 APC。这主要是有用的,当 APC 被静态编译入 PHP 时,因为没有其它方法来禁用它(当编译为 DSO 的时候,可以将 php.ini 中的 extension 行注释掉)。

apc.shm_segments

类型: 整型
对编译缓存分配共享内存块的数量。如果APC用光了共享内存,而且你已经设置 apc.shm_size为系统允许的最大值的情况下,你可以试着去提高这个参数的值。

apc.shm_size

类型:整型
每个共享内存块的大小是以MB为单位的。在默认情况下,一些系统(包括大多数BSD变种系统)的共享内存块的大小限制的很低。

apc.optimization

类型:整型
优化等级。设为0则禁用优化,越高的值使用越强有力的优化。期待有适度的速度上的改进。这个还是实验性质的。

apc.num_files_hint

类型: 整型
对在你的Web服务器上被包含和请求的不同的源文件的数量的提示。如果你无法确定,设置为0或者省略;这个设置主要可能用于有成千的源文件的站点。

apc.ttl

类型:整型
当一个缓存条目在缓存区的位置被另一个条目需要时,我们需要考虑的是这个缓存条目在缓存区的位置被允许空闲的秒数。将这个参数设置为0意味着你的缓存可能 充满不新鲜的条目,同时导致新的条目无法被缓存。

apc.gc_ttl

类型:整型
缓存条目在垃圾收集列表中存活的秒数。这个值提供了出错保护在执行一个缓存源文件,而同时服务器进程死了的事件中。如果那个源文件被修改,内存分配给旧版 本的缓存条目将不会被回收,直到这个参数设定的TTL值到的时候。设置为0就是禁止这个特性。

apc.cache_by_default

类型:布尔型
默认为On,但可以被设置为Off并和以加号开头的apc.filters配合使用,文件仅仅在匹配过滤器时才被缓存。

apc.filters

类型:字符串
一个以逗号分割的POSIX扩展正则表达式的列表。如果任何模式匹配源文件名,这个文件将不会被缓存。注意用来匹配的文件名是传递给 include/require 的文件名,而不是绝对路径。如果正则表达式的第一个字符是 + ,则这个表达式就意味着任何匹配表达式的文件将会被缓存,如果第一个字符是 - 则任何匹配都不会被缓存。 - 是默认值,所以可以被省略。

apc.mmap_file_mask

类型:字符串
如果使用–enable-mmap(默认启用)为APC编译了MMAP支持,这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为”/tmp/apc.XXXXXX”)。该掩码用于决定内存映射区域是否要被file-backed或者shared memory backed。对于直接的file-backed内存映射,要设置成”/tmp/apc.XXXXXX”的样子(恰好6个X)。要使用POSIX风格的shm_open/mmap就需要设置成”/apc.shm.XXXXXX”的样子。你还可以设为”/dev/zero”来为匿名映射的内存使用内核的”/dev/zero”接口。不定义此指令则表示强制使用匿名映射。


apc.slam_defense

类型:整型
在非常繁忙的服务器上,无论你启动服务还是修改文件,你都会导致一种多进程都试图在同一个时间缓存同一个文件的竞争。这个选项设置了进程跳过试图去缓存一 个未被缓存的文件的百分比。或者可以把这个想象成一个单独进程跳过缓存的机率。例如,设置apc.slam_defense为75就意味着进程有75%的 机率不去缓存未被缓存的文件。所以,设置的越高,越能减少缓存的碰撞机率。设置为0则禁用这个特性。

apc.file_update_protection

类型:整型
当你在一个运行着的服务器上修改文件时,你应该执行原子操作。也就是,先写一个临时文件,当写完后再重命名(mv)这个文件到它的最终位置。许多文本编辑 器,cp,tar和其他一些类似程序都不是这样操作的。这就意味着有机会去访问和(缓存)文件,当这个文件还在被写的情况下。 apc.file_update_protection的设置使得缓存标记新文件的延迟。默认值是2,意味着如果发现文件的修改时间距离访问时间不到2 秒,文件将不会被缓存。访问写到一半的文件的不幸用户将会看到离奇的情况,但至少这种情况不是持续的。如果你确信你经常使用原子操作来更新你的文件,你可 以关闭这个保护通过设置这个参数为0。如果你的系统充满io操作,并导致更新程序花费超过2秒,你可能需要去增大这个值。

apc.enable-cli

类型:整型
大多是为了测试和调试。为CLI版本的PHP开启动APC功能。一般来说,你将不会想到为每一个 CLI请求创建,移植和放弃APC的缓存,但对于各种测试情况,这是很容易的为了CLI版本开启APC。


案例:
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 0
apc.num_files_hint = 1000
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = On
apc.slam_defense = 0
apc.file_update_protection = 2
apc.enable_cli = 0
apc.stat=0

2、APC缓存案例

<?php
class Cache_Driver{


    //获取缓存信息
	public function get($id)
	{
	   $data = apc_fetch($id);
	   if (!is_array($data))
	   {
            $data = apc_fetch($id);
       }

		return (is_array($data)) ? $data[0] : FALSE;
	}
	//设置缓存信息
	public function set($id, $data, $ttl = 60)
	{
		return apc_store($id, array($data, time(), $ttl), $ttl);
	}
	//删除key值对应的缓存
	public function delete($id)
	{
		return apc_delete($id);
	}
}
?>


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/871189.htmlTechArticlePHP缓存之模块缓存(APC) APC是Alternative PHP Cache的简称,是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓...
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP的目的:構建動態網站PHP的目的:構建動態網站Apr 15, 2025 am 12:18 AM

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP:處理數據庫和服務器端邏輯PHP:處理數據庫和服務器端邏輯Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

您如何防止PHP中的SQL注入? (準備的陳述,PDO)您如何防止PHP中的SQL注入? (準備的陳述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。

PHP和Python:代碼示例和比較PHP和Python:代碼示例和比較Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP行動:現實世界中的示例和應用程序PHP行動:現實世界中的示例和應用程序Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP:輕鬆創建交互式Web內容PHP:輕鬆創建交互式Web內容Apr 14, 2025 am 12:15 AM

PHP可以輕鬆創建互動網頁內容。 1)通過嵌入HTML動態生成內容,根據用戶輸入或數據庫數據實時展示。 2)處理表單提交並生成動態輸出,確保使用htmlspecialchars防XSS。 3)結合MySQL創建用戶註冊系統,使用password_hash和預處理語句增強安全性。掌握這些技巧將提升Web開發效率。

PHP和Python:比較兩種流行的編程語言PHP和Python:比較兩種流行的編程語言Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP的持久相關性:它還活著嗎?PHP的持久相關性:它還活著嗎?Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版