国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
大型網(wǎng)站優(yōu)化-memcache技術(shù),優(yōu)化-memcache技術(shù)
大型網(wǎng)站優(yōu)化-memcache技術(shù)
memcache簡(jiǎn)介
操作memcache
使用php操作memcache
memcached的內(nèi)存管理與刪除機(jī)制
實(shí)際使用場(chǎng)景
高級(jí)特性
分布式memcache配置
緩存雪崩現(xiàn)象
memcache如何做高可用
案例:
擴(kuò)展
首頁(yè) 後端開(kāi)發(fā) php教程 大型網(wǎng)站優(yōu)化-memcache技術(shù),優(yōu)化-memcache技術(shù)_PHP教程

大型網(wǎng)站優(yōu)化-memcache技術(shù),優(yōu)化-memcache技術(shù)_PHP教程

Jul 12, 2016 am 08:55 AM

大型網(wǎng)站優(yōu)化-memcache技術(shù),優(yōu)化-memcache技術(shù)

大型網(wǎng)站優(yōu)化-memcache技術(shù)

memory+cache 內(nèi)存緩存

memcache簡(jiǎn)介

memcache是一套分布式的高速緩存系統(tǒng),由LiveJournal的Brad Fitzpatrick開(kāi)發(fā),目前被許多網(wǎng)站使用以提升網(wǎng)站的訪問(wèn)速度,尤其對(duì)于一些大型的、需要頻繁訪問(wèn)數(shù)據(jù)庫(kù)的網(wǎng)站訪問(wèn)速度提升效果十分顯著 。這是一套開(kāi)放源代碼軟件,以BSD license授權(quán)發(fā)布。【摘取自百度百科】

官網(wǎng):http://memcached.org/

?

分布式:多臺(tái)Memcache服務(wù)器來(lái)管理數(shù)據(jù)的架構(gòu)。

緩存系統(tǒng):將用戶查詢的數(shù)據(jù)緩存到內(nèi)存之中,方便下次直接從內(nèi)存中獲取。減少了磁盤(pán)IO的開(kāi)銷。

什么是nosql?(sql 關(guān)系型數(shù)據(jù)庫(kù))

答:MySQL 叫做關(guān)系型數(shù)據(jù)庫(kù)(主要的特點(diǎn)是都是一個(gè)二維表結(jié)構(gòu)(表中的行和列),表與表之間是由關(guān)系的)(oracle(Java)、db2、sqlserver

非關(guān)系型數(shù)據(jù):就是不使用sql語(yǔ)句作為查詢的數(shù)據(jù)庫(kù)(保存數(shù)據(jù)的系統(tǒng)),并且沒(méi)有嚴(yán)格意義上的二維表的概念。它的數(shù)據(jù)結(jié)構(gòu)全部是一張巨大的hash表(key-value)

hash表好處: 時(shí)間復(fù)雜度是 0(1):隨著數(shù)據(jù)的增加,查詢時(shí)間不會(huì)存在數(shù)量級(jí)(1s)的變化。

hash表壞處: hash碰撞 不同 key 對(duì)應(yīng)同一個(gè)值

?

key1 ===MD5(sql)

Asion

key2

12

key3

shenzhen

key4

iphone

?

  • selinux沒(méi)有關(guān)閉

    ????

    讓selinux立即生效

    ?

  • 2.1 環(huán)境準(zhǔn)備

    在Linux環(huán)境下,需要gcc、g-c++、make(makefile)、cmake、autoconfig(configure)、libtool等工具

    在Linux下聯(lián)網(wǎng)的情況下,使用如下命令

    # yum install -y gcc make cmake autoconfig libtool

    -y 不需要使用確認(rèn)交互式

    ?

    2.2 編譯安裝memcached

    memcached依賴于 libevent庫(kù),因此需要先安裝,分別到各自的官網(wǎng)下載穩(wěn)定版

    libevetnt官網(wǎng):http://libevent.org/

    memcache官網(wǎng):http://memcached.org/

    ?

    先編譯安裝libevent,在編譯安裝memcached,同時(shí)在安裝memcached需要指定libevent的安裝路徑

    具體步驟:

    上傳

  • 先下載libevent,解壓,并安裝(一般Linux下軟件安裝都是放在 /usr/local/src目錄下,安裝的軟件一般放在/usr/local/NAME)

    # ./configure --prefix=/usr/local/libevent && make && make install

    b. 安裝memcache,解壓、編譯、安裝

    # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent && make && make install

    ?

    2.3 memcached的啟動(dòng)

    # /usr/local/memcached/bin/memcached -m 64 -p 11211 -u nobody -vv

    注意:此時(shí)memcached成功啟動(dòng),但把信息輸出到控制臺(tái)。

    如果想讓memcached作為服務(wù)在后臺(tái)啟動(dòng),只需要加上-d選項(xiàng)(daemon 后臺(tái))

    # /usr/local/memcached/bin/memcached -m 64 -p 11211 -u nobody -d

    ?

    如何查看服務(wù)器是否正常啟動(dòng)?

    # ps axu | grep memcached

    ?

    如果需要查看參數(shù)信息,使用 memcached -h 查看幫助:

    操作memcache

    memcached的客戶端與服務(wù)器端的通信很簡(jiǎn)單,基于文本的協(xié)議,類似http協(xié)議,可以直接使用Telnet來(lái)做交互

    ?

    使用Telnet操作(quit退出)

    # telent 服務(wù)器的IP 11211

  • Windows下

    連接之后 使用 ctrl + ] 打開(kāi)Telnet的回顯

  • Linux下

    ?

    2. 基本命令:

    學(xué)習(xí)memcache的增刪改查命令:

    add key flag expire length

    key: 名稱

    flag: 1 memcache按照字符串的方式保存

    expire:過(guò)期時(shí)間,memcache時(shí)間

    length:數(shù)據(jù)長(zhǎng)度(B)

    ※add 增加

    # add name 1 0 2 # 在memcache服務(wù)器上添加一個(gè)key為的name值 長(zhǎng)度為2個(gè)字節(jié),有效期長(zhǎng)期有效

    ?

    如何理解expire

    設(shè)置緩存的有效期,有三種格式

  • 設(shè)置秒數(shù),從設(shè)置開(kāi)始,n秒后失效
  • 時(shí)間戳,到指定時(shí)間戳后失效
  • 設(shè)置為0,不自動(dòng)失效(特別注意,不是永久有效。a. 在memcache安裝時(shí)候,指定了一個(gè)最長(zhǎng)的有效時(shí)間,默認(rèn)是30天(源代碼) b. 可能不到30天,就會(huì)被擠出去)

    最近最少使用原則

    ?

    ※delete 刪除

    # delete key

    ?

    ※replace 替換

    # replace key flag expire length

    ?

    ※get 獲取

    # get key

    ?

    ※set 如果數(shù)據(jù)有 replace ,沒(méi)有則 add

    # set key flag expire length

    name存在:

    age不存在:

    ?

    ※incr 增加

    # incr age NUMBER

    ?

    ※decr 減少

    # decr age NUMBER

    ?

    ※stats 統(tǒng)計(jì)memcache服務(wù)器信息

    # stats

    ?

    ※flush_all 清空所有數(shù)據(jù)

    # flush_all

    使用php操作memcache

  • Windows下
  • 到(http://downloads.php.net/pierre/)下載擴(kuò)展dll文件
  • 將該文件放到php的extension_dir 對(duì)應(yīng)的目錄下
  • 修改php.ini文件,加入 extension=php_memcache.dll,引入該文件
  • 重啟Apache

    ?

  • Linux下 (在Linux下如何為php開(kāi)啟一個(gè)擴(kuò)展,說(shuō)一下通用方案

    beta :測(cè)試版:一般都有一些小bug,但是需要用戶去使用發(fā)現(xiàn),如果有問(wèn)題,可以給官方反饋。然后在做修復(fù)

    alpha:內(nèi)部測(cè)試版:內(nèi)部在開(kāi)發(fā)的時(shí)候,使用的版本,一般這個(gè)版本bug眾多。但是這個(gè)版本往往有新的功能加入。(一般也是新公司才試試)alpha版本有一些補(bǔ)償。

    stable:穩(wěn)定版:基本無(wú)bug,能夠穩(wěn)定的運(yùn)行。

    ?

    ftp使用的注意事項(xiàng):

  • vsftpd 是否正常的開(kāi)啟 service vsftpd status
  • 一般都只能使用普通用戶連接ftp(不能root來(lái)連接ftp)獲取使用 sudo
  • 自己家目錄的大小空間不夠(上傳文件成功,但是顯示的大小為0)
  • 防火墻是否關(guān)閉(iptables -F 關(guān)閉)(iptables -L)

    ?

    ?

    # cls

    # cd

    # vim .bashrc

    ?

    Linux下載末行模式下

    # :x 小寫(xiě) 退出 wq

    linux在編輯模式下

    # Z 大寫(xiě)

    ?

    ?

    # /usr/local/php/bin/phpize 絕對(duì)路徑phpize

    d. 利用上面生成的configure文件,收集系統(tǒng)信息 不需要指定安裝路徑

    # ./configure --with-php-config=/usr/local/php/bin/php-config 告訴它如何去找php配置文件

    e. 執(zhí)行編譯、安裝

    # make && make install

    注意:可以查看上述命令執(zhí)行完成之后的結(jié)構(gòu)

    # ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

    ?

    注意:在Linux下,如何查看php.ini配置文件的位置?

    解決:phpinfo();

    ?

    注意:在Linux下,修改配置文件之前,一定要備份

    php.ini-backup-2016-1-12

    ?

    注意:.so是什么文件?

    .so是Linux下的共享對(duì)象,類型Windows下的.dll文件

    ?

    ?

    ?

    注意:Linux下,關(guān)閉一個(gè)服務(wù) 可以使用

    # pkill -9 httpd

    # ps aux | grep httpd

    #ps uax | grep httpd

    ?

    將上面生成的地址增加到php.ini配置文件,如下

    extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

    extension=memcacahe.so

    建立一個(gè)test.php文件,測(cè)試php是否有memcache的一個(gè)模塊

    php操作memcache,保存并獲取值

    memcached的內(nèi)存管理與刪除機(jī)制

    ?

    注意:Memcache最大的value也只能是1M的空間。

    ?

    注意:內(nèi)存碎片化永遠(yuǎn)都存在,只是哪一種方式可以使得內(nèi)存碎片最小。

    ?

    1. 什么是內(nèi)存碎片化?

    在使用這種內(nèi)存緩存系統(tǒng)的時(shí)候,由于不斷的申請(qǐng),釋放,就會(huì)形成一些很小的內(nèi)存片段,無(wú)法被利用,這種現(xiàn)象就叫做,內(nèi)存的碎片化。這個(gè)小紅塊就是操作系統(tǒng)無(wú)法使用的空間。

    ?

  • 如何解決?

    memcache利用slab allocator的方式來(lái)管理(每個(gè)slab class大小為1M

    最小的單元叫做 chunk(小塊):存放數(shù)據(jù)的倉(cāng)庫(kù)

    多個(gè)小單元組成一個(gè)chunks:多個(gè)小塊組成(所有的小塊的大小全部一致)

    每個(gè) slab class的大小為1M

    ?

  • memcache如何選擇合適的大?。?

    注意:如果 122Bytes的slab裝滿了,現(xiàn)在有一個(gè)100Bytes的數(shù)據(jù)來(lái)了,存到哪里去?

    答:肯定不會(huì)存在144,還是存在122這個(gè)chunk里面,利用LRU算法來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。

    ?

  • 固定chunk帶來(lái)的內(nèi)存浪費(fèi),22B

    ?

  • factor調(diào)優(yōu)

    memcached在啟動(dòng)的時(shí)候,會(huì)按照一定的大小來(lái)組織slab class,可以通過(guò)-f 來(lái)指定

    默認(rèn)是1.25,相鄰chunk之間的比值就是增加因子??梢愿鶕?jù)自己網(wǎng)站的業(yè)務(wù)調(diào)整緩存因子的大小。

    是因?yàn)槊總€(gè)業(yè)務(wù)不一樣,所需要的最小的chunk是不一樣的。這個(gè)參數(shù)使得我們的系統(tǒng)變得更加適應(yīng)自己的業(yè)務(wù),因?yàn)閿?shù)據(jù)可以自己設(shè)定大小。

    ?

  • memcache的惰性刪除

    memcached內(nèi)部不會(huì)監(jiān)視記錄是否過(guò)期,而是在get時(shí)查看記錄的時(shí)間戳,檢查記錄是否過(guò)期。這種行為被稱為lazy(惰性)expiration。因此,好處是memcached不會(huì)在過(guò)期監(jiān)視上耗費(fèi)CPU時(shí)間。

    比如:有 set(name, asion, 0, 3600) 過(guò)了3600秒就失效,失效后,并不會(huì)自動(dòng)刪除,只有當(dāng)get查詢時(shí),檢測(cè)是否過(guò)期,如果過(guò)期則刪除。

    例如 # add name 1 8 2 當(dāng)8s后,是失效,還是不存在?通過(guò)stats分析

    分析:是失效你,而不是不存在,只有在下一次去獲取時(shí)候,memcache才會(huì)去檢測(cè)它是否過(guò)期,過(guò)期了就刪除

    ?

  • memcache的LRU算法

    memcached會(huì)優(yōu)先使用已超時(shí)的記錄的空間,但即使如此,也會(huì)發(fā)生追加新記錄時(shí)空間不足的情況,此時(shí)就要使用名為 Least Recently Used(LRU)機(jī)制來(lái)分配空間。

    顧名思義,這是刪除"最近最少使用"的記錄的機(jī)制。因此,當(dāng)memcached的內(nèi)存空間不足時(shí)(無(wú)法從slab class 獲取到新的空間時(shí)),就從最近未被使用的記錄中搜索,并將其空

    間分配給新的記錄。從緩存的實(shí)用角度來(lái)看,該模型十分理想。

    ?

    當(dāng)mecache里面的數(shù)據(jù)空間(默認(rèn)是64M)已經(jīng)占滿了,再繼續(xù)存儲(chǔ)數(shù)據(jù)能否存儲(chǔ)呢?

    答:能存儲(chǔ),要?jiǎng)h除過(guò)期的數(shù)據(jù),如果都沒(méi)有過(guò)期,則刪除最不活躍的數(shù)據(jù),騰出空間給后面添加數(shù)據(jù)。

    例如:以122Bytes的slab舉例,當(dāng)數(shù)據(jù)裝滿后,如果來(lái)了一個(gè)100Bytes數(shù)據(jù),如何處理?(即使永久有效,也會(huì)被踢)

    分析:內(nèi)存的管理 LRU算法 、FIFO算法

    ?

  • memcache的一些參數(shù) Ctrl+C

    注意:在vim下如果輸入了 ctrl+s 可以使用 ctrl+q 退出

    -p 監(jiān)聽(tīng)的端口

    -l 連接的IP地址, 默認(rèn)是本機(jī)

    -d start 啟動(dòng)memcached服務(wù)

    -d restart 重起memcached服務(wù)

    -d stop|shutdown 關(guān)閉正在運(yùn)行的memcached服務(wù)

    -d install 安裝memcached服務(wù)

    -d uninstall 卸載memcached服務(wù)

    -u 以的身份運(yùn)行 (僅在以root運(yùn)行的時(shí)候有效)

    -m 最大內(nèi)存使用,單位MB。默認(rèn)64MB

    注意:如果系統(tǒng)是32位的,則最大限制為2G,如果系統(tǒng)是64位,則無(wú)限制。

    -M 內(nèi)存耗盡時(shí)返回錯(cuò)誤,而不是刪除項(xiàng)

    -c 最大同時(shí)連接數(shù),默認(rèn)是1024

    -f 塊大小增長(zhǎng)因子,默認(rèn)是1.25

    -n 最小分配空間,key+value+flags默認(rèn)是48

    -h 顯示幫助

    -v 輸出警告和錯(cuò)誤信息

    -vv 打印客戶端的請(qǐng)求和返回信息

    -i 打印memcached和libevent的版權(quán)信息

    ?

    實(shí)際使用場(chǎng)景

    保存:1. 文件 2. mysql

    問(wèn)題:如果一個(gè)文件夾下session文件過(guò)多,檢索變慢,如何處理?

    答:分層處理

    使用Memcache來(lái)保存,Memcache使用分布式來(lái)保存(拿多臺(tái)Memcache做存儲(chǔ))

    ?

    使用memcache保存session

    ?

    1. 修改php.ini文件,配置信息如下

    ????session.save_handler = memcache #代表使用memcache保存session

    ????session.save_path ="tcp://127.0.0.1:11211" # 指定memcache服務(wù)器的地址和端口

  • 測(cè)試

    1. 開(kāi)啟session,保存session

  • 從Memcache獲取session

    高級(jí)特性

    分布式memcache配置

    什么是分布式?

    由于單臺(tái)memcache的服務(wù)能力有限,可以使用多臺(tái)memcache來(lái)提供緩存的功能,這種架構(gòu)就叫做memcache的分布式緩(集群)存系統(tǒng)

    ?

    如何實(shí)現(xiàn)?

    可以這樣理解,如何將數(shù)據(jù)分散答各臺(tái)Memcache服務(wù)器上。

    ?

    在客戶端實(shí)現(xiàn)分布式,在數(shù)據(jù)保存之前,根據(jù)一定的算法,將數(shù)據(jù)保存到那臺(tái)memcache服務(wù)器上,在獲取數(shù)據(jù)的時(shí)候,按照前面相同的算法去對(duì)應(yīng)的memcache服務(wù)器上獲取數(shù)據(jù)

    ?

    分布式算法

  • 取摸算法

    將key的值對(duì)服務(wù)器的臺(tái)數(shù)取余,然后將對(duì)應(yīng)的value值保存到對(duì)應(yīng)的余數(shù)的那臺(tái)memcache服務(wù)器上,一般這個(gè)hash函數(shù) crc32( key ) % 3

    crc32()這個(gè)函數(shù)可以使得一個(gè)字符串變成一個(gè)32位的整數(shù)

    ?

    壞處:當(dāng)某一臺(tái)服務(wù)器宕機(jī)或者需要增加一臺(tái)服務(wù)器的時(shí)候,這個(gè)時(shí)候緩存數(shù)據(jù)基本全部失效,因?yàn)槌龜?shù)變了。 不嚴(yán)格的公式, 命中率 = 取到數(shù)據(jù)/總數(shù) 1/N N代表服務(wù)器的臺(tái)數(shù)

    ?

    引發(fā)出來(lái)的問(wèn)題:當(dāng)memcache宕機(jī)之后,緩存數(shù)據(jù)失效,這個(gè)時(shí)候MySQL的壓力會(huì)驟增,

    這個(gè)時(shí)候,MySQL會(huì)宕機(jī),然后在重啟MySQL,MySQL會(huì)在短時(shí)期內(nèi)再次宕機(jī),然后,稍微延遲一點(diǎn)(緩存已經(jīng)重新建立了一部分),又宕機(jī)。隨著時(shí)間的慢慢推移,MySQL基本上趨于穩(wěn)定,緩存系統(tǒng)成功建立。因?yàn)榫彺鏀?shù)據(jù)不存在,所有的請(qǐng)求全部要轉(zhuǎn)向MySQL來(lái)提供,這種現(xiàn)象就叫做memcache的雪崩現(xiàn)象。

    ?

    概圖:

    ?

    ?

  • 一致性hash實(shí)現(xiàn)分布式

    ?

  • 假想有一個(gè)圓環(huán),分布著從 0 到 2^32 這么多個(gè)正整數(shù)

    ?

  • 然后在將服務(wù)器的節(jié)點(diǎn)數(shù)通過(guò)hash函數(shù)(crc32())運(yùn)算后,按照順時(shí)針的方向映射到上面的圓環(huán)上

    ?

  • 將需要存儲(chǔ)的數(shù)據(jù)的key也按照上面的hash函數(shù)運(yùn)算后,按照順時(shí)針的方向保存到一個(gè)不比自己小的節(jié)點(diǎn)上

    ?

    注意:只要是memcache宕機(jī),就一定會(huì)有數(shù)據(jù)的丟失。但是要想辦法讓數(shù)據(jù)丟失的最少,使用一致性hash,即使有一臺(tái)服務(wù)器宕機(jī),也只是影響一臺(tái)服務(wù)器上的數(shù)據(jù)。

    ?

    虛擬節(jié)點(diǎn):分擔(dān)任務(wù)

    緩存雪崩現(xiàn)象

    雪崩造成的原因?

  • 由于算法不當(dāng),取摸算法,造成大量緩存失效,會(huì)引發(fā)雪崩

    解決方案:一致性hash算法

    ?

  • 緩存時(shí)間都是同一時(shí)間,緩存系統(tǒng)會(huì)在同一時(shí)間全部失效,這個(gè)也會(huì)造成雪崩

    解決方案:緩存時(shí)間設(shè)置成一個(gè)范圍內(nèi)的隨機(jī)時(shí)間(3-9小時(shí))

    ?

    由于某個(gè)memcache節(jié)點(diǎn)的緩存數(shù)據(jù)失效,導(dǎo)致其他memcache節(jié)點(diǎn)的緩存命中率下降,緩存中缺失的數(shù)據(jù)會(huì)去MySQL數(shù)據(jù)庫(kù)中查詢,短時(shí)期內(nèi),造成了MySQL服務(wù)器壓力巨大,造成宕機(jī),就叫做緩存雪崩現(xiàn)象

    ?

    當(dāng)重啟MySQL之后,短期內(nèi)再次宕機(jī),但緩存數(shù)據(jù)已經(jīng)建立了一部分,在MySQL反復(fù)多次啟動(dòng)之后,緩存全部重建完畢,MySQL不再宕機(jī)趨于穩(wěn)定。

    ?

    解決方案:把緩存的時(shí)間設(shè)置成一個(gè)范圍內(nèi)的隨機(jī)值(3-9小時(shí)),這樣就在不同的時(shí)間段失效,把重建的工作分擔(dān)到不同的時(shí)間上。

    memcache如何做高可用

  • 使用repcached實(shí)現(xiàn),全稱 replication cached是由日本人發(fā)明的memcached的高可用性技術(shù),簡(jiǎn)稱復(fù)制緩沖區(qū)技術(shù)。

    ?

  • MemcacheDB是一個(gè)分布式、key-value形式的持久存儲(chǔ)系統(tǒng)。由sina人員開(kāi)發(fā)。它不是一個(gè)緩存組件,而是一個(gè)基于對(duì)象存取的、可靠的、快速的持久存儲(chǔ)引擎。協(xié)議跟memcache一致(不完整),所以很多memcached客戶端都可以跟它連接。MemcacheDB采用Berkeley DB作為持久存儲(chǔ)組件,故很多Berkeley DB的特性的他都支持。擴(kuò)展
  • 如何在Linux下給一個(gè)php添加一個(gè)擴(kuò)展,說(shuō)出通用步驟?

    答:

    ?

  • memcache的安全性如何解決?

    答:

    由于memcache的本身設(shè)計(jì)就是極為簡(jiǎn)潔的,根本沒(méi)有設(shè)置權(quán)限方面的限制。為什么不設(shè)置權(quán)限? 只提供緩存功能,為了精簡(jiǎn)

  • 放在內(nèi)網(wǎng) 192.168.1.110 內(nèi)網(wǎng)IP外網(wǎng)無(wú)法訪問(wèn)
  • 寫(xiě)一個(gè)防火墻驗(yàn)證規(guī)則,只允許自己規(guī)定IP的包可以轉(zhuǎn)進(jìn)來(lái),其他的全部丟棄

    192.168.1.221 ---224

    3. 當(dāng)使用文件保存session文件時(shí)候,如果文件過(guò)多,如何處理?

    一般來(lái)說(shuō),超過(guò)65535個(gè)session文件的時(shí)候,這個(gè)時(shí)候session的獲取就會(huì)變得異常緩慢,意味php代碼執(zhí)行很慢,如何解決?

    答:

    分層處理: 一個(gè)文件夾下建立A-Z開(kāi)頭的文件夾 然后A_Z在建立

    使用memcache處理: 單臺(tái)memcache處理能力有限,就使用分布式memcache來(lái)處理

  • 如何理解負(fù)載均衡集群也是高可用集群,但有不是?

    答:負(fù)載均衡集群提供了高可用的能力,如果某一臺(tái)宕機(jī)之后,還是可以提供正常的服務(wù),只是服務(wù)提供的有些吃力而已。

    因?yàn)樨?fù)載均衡集群不提供keepalive的機(jī)制。監(jiān)控機(jī)制

    ?

    案例:

    在項(xiàng)目中如何使用Memcache?

    Memcache存在的意義就是緩存數(shù)據(jù),減輕MySQL的壓力。

    ?

  • 書(shū)寫(xiě)一個(gè)列表頁(yè)

  • 詳情頁(yè)

    ?

    擴(kuò)展

  • Linux下安裝一個(gè)php的擴(kuò)展的通用方法

    答:

  • 下載對(duì)應(yīng)的擴(kuò)展的源碼 http://pecl.php.net/package/memcache
  • 將對(duì)于的擴(kuò)展上傳到Linux服務(wù)器上,放在(/usr/local/src/下)
  • 執(zhí)行 tar -zxvf NAME.tar.gz
  • cd NAME
  • 執(zhí)行絕對(duì)路徑下的phpize命名 (/usr/local/php/bin/phpize)必須在擴(kuò)展包的目錄內(nèi)
  • 執(zhí)行 ./configure --with-php-config=/usr/local/php/bin/php-config (--with-php-config=絕對(duì)路徑下的php-config的路徑,并且不需要指定安裝的路徑)
  • make && make install
  • 會(huì)生成一個(gè)目錄,在個(gè)目錄里面有對(duì)于的NAME.so文件
  • 去修改php.ini的配置文件,增加兩行信息

    extension_dir='上面生成的目錄'

    extension='NAME.so'

  • 重啟Apache,然后使用phpinfo()函數(shù)測(cè)試一下,在瀏覽器輸入地址查看,搜索如果有Memcache,代表擴(kuò)展成功的開(kāi)啟。

    ?

  • www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117896.htmlTechArticle大型網(wǎng)站優(yōu)化-memcache技術(shù),優(yōu)化-memcache技術(shù) 大型網(wǎng)站優(yōu)化-memcache技術(shù) memory+cache 內(nèi)存緩存 memcache簡(jiǎn)介 memcache是一套 分布式 的高速 緩存系統(tǒng)...
    本網(wǎng)站聲明
    本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費(fèi)脫衣圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

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

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費(fèi)的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級(jí)程式碼編輯軟體(SublimeText3)

    熱門(mén)話題

    如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? 如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? Jun 20, 2025 am 01:03 AM

    tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

    如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

    要安全處理PHP中的文件上傳,核心在於驗(yàn)證文件類型、重命名文件並限制權(quán)限。 1.使用finfo_file()檢查真實(shí)MIME類型,僅允許特定類型如image/jpeg;2.用uniqid()生成隨機(jī)文件名,存儲(chǔ)至非Web根目錄;3.通過(guò)php.ini和HTML表單限製文件大小,設(shè)置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強(qiáng)安全性。這些步驟有效防止安全漏洞,確保文件上傳過(guò)程安全可靠。

    PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? Jun 19, 2025 am 01:07 AM

    在PHP中,==與===的主要區(qū)別在於類型檢查的嚴(yán)格程度。 ==在比較前會(huì)進(jìn)行類型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類型都相同才會(huì)返回true,例如5==="5"返回false。使用場(chǎng)景上,===更安全應(yīng)優(yōu)先使用,==僅在需要類型轉(zhuǎn)換時(shí)使用。

    如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

    PHP中使用基本數(shù)學(xué)運(yùn)算的方法如下:1.加法用 號(hào),支持整數(shù)和浮點(diǎn)數(shù),也可用於變量,字符串?dāng)?shù)字會(huì)自動(dòng)轉(zhuǎn)換但不推薦依賴;2.減法用-號(hào),變量同理,類型轉(zhuǎn)換同樣適用;3.乘法用*號(hào),適用於數(shù)字及類似字符串;4.除法用/號(hào),需避免除以零,並註意結(jié)果可能是浮點(diǎn)數(shù);5.取模用%號(hào),可用於判斷奇偶數(shù),處理負(fù)數(shù)時(shí)餘數(shù)符號(hào)與被除數(shù)一致。正確使用這些運(yùn)算符的關(guān)鍵在於確保數(shù)據(jù)類型清晰並處理好邊界情況。

    如何與PHP的NOSQL數(shù)據(jù)庫(kù)(例如MongoDB,Redis)進(jìn)行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(kù)(例如MongoDB,Redis)進(jìn)行交互? Jun 19, 2025 am 01:07 AM

    是的,PHP可以通過(guò)特定擴(kuò)展或庫(kù)與MongoDB和Redis等NoSQL數(shù)據(jù)庫(kù)交互。首先,使用MongoDBPHP驅(qū)動(dòng)(通過(guò)PECL或Composer安裝)創(chuàng)建客戶端實(shí)例並操作數(shù)據(jù)庫(kù)及集合,支持插入、查詢、聚合等操作;其次,使用Predis庫(kù)或phpredis擴(kuò)展連接Redis,執(zhí)行鍵值設(shè)置與獲取,推薦phpredis用於高性能場(chǎng)景,Predis則便於快速部署;兩者均適用於生產(chǎn)環(huán)境且文檔完善。

    我如何了解最新的PHP開(kāi)發(fā)和最佳實(shí)踐? 我如何了解最新的PHP開(kāi)發(fā)和最佳實(shí)踐? Jun 23, 2025 am 12:56 AM

    TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

    什麼是PHP,為什麼它用於Web開(kāi)發(fā)? 什麼是PHP,為什麼它用於Web開(kāi)發(fā)? Jun 23, 2025 am 12:55 AM

    PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

    如何設(shè)置PHP時(shí)區(qū)? 如何設(shè)置PHP時(shí)區(qū)? Jun 25, 2025 am 01:00 AM

    tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

    See all articles