摘要:項(xiàng)目下的緩存控制客戶(hù)端向服務(wù)端請(qǐng)求頁(yè)面的過(guò)程中,服務(wù)端是可控的??煽氐牟趴蓛?yōu)化,優(yōu)化的重點(diǎn),即是緩存優(yōu)化。如此就能提高數(shù)據(jù)響應(yīng)的速度,也保護(hù)了數(shù)據(jù)源。雖開(kāi)啟擴(kuò)展可管理內(nèi)存,但所能管理的內(nèi)存大小是有限的。見(jiàn)下圖的英文注釋注意事項(xiàng)
php項(xiàng)目下的緩存控制
客戶(hù)端向服務(wù)端請(qǐng)求php頁(yè)面的過(guò)程中,服務(wù)端是可控的。 可控的才可優(yōu)化,優(yōu)化的重點(diǎn),即是緩存優(yōu)化。 試想?數(shù)據(jù)存儲(chǔ)在DB中,訪問(wèn)DB就要讀取硬盤(pán)數(shù)據(jù),但如果需要數(shù)據(jù)的速度>>硬盤(pán)最大的讀寫(xiě)速度, 就會(huì)產(chǎn)生IO瓶頸。 那么,使用內(nèi)存緩存數(shù)據(jù)結(jié)果集,讓用戶(hù)首先讀取緩存,未果則從DB中讀取。 如此,就能提高數(shù)據(jù)響應(yīng)的速度,也保護(hù)了數(shù)據(jù)源。 php雖開(kāi)啟shmop擴(kuò)展可管理內(nèi)存,但所能管理的內(nèi)存大小是有限的。 才有大為流行的NOSQL: memcache 高性能的分布式內(nèi)存緩存服務(wù)器 (分布式配置:1.有多個(gè)memcache服務(wù)端;2.開(kāi)啟php相應(yīng)擴(kuò)展,通過(guò)addServer()即可實(shí)現(xiàn)。底層通過(guò)對(duì)key的hash取余來(lái)標(biāo)識(shí)服務(wù)器,因此代碼實(shí)現(xiàn)上,不要改變存取前的服務(wù)器的順序,否則可能出現(xiàn)獲取不到值的情況) redis 高性能的內(nèi)存緩存服務(wù)器 (主從配置:master主服務(wù)器執(zhí)行修改操作,多個(gè)slave(只讀)連接master,在首次全量復(fù)制后,增量更新數(shù)據(jù)到自身。如果slave斷了,重新連接master時(shí),會(huì)自動(dòng)全量復(fù)制)MEMCACHE
以key-value的方式存儲(chǔ)
key可達(dá)250B,value可達(dá)1M
value是以字符串的形式保存的:
php標(biāo)量數(shù)據(jù)類(lèi)型,保存時(shí)會(huì)隱式轉(zhuǎn)換為字符串; php其他數(shù)據(jù)類(lèi)型, 保存時(shí)自動(dòng)序列化,取出時(shí)自動(dòng)反序列化. //該過(guò)程是php的memcache擴(kuò)展開(kāi)啟后,底層實(shí)現(xiàn)的
item過(guò)期時(shí)間是時(shí)間戳?xí)r,無(wú)限制;以s為單位時(shí),不能超過(guò)30天的秒數(shù)
不能持久化,要的就是速度
注意事項(xiàng)
∧
memcache與redis,最大區(qū)別在于持久化(即數(shù)據(jù)能否保存在硬盤(pán)上).
redis因其多樣的數(shù)據(jù)結(jié)構(gòu),而滿(mǎn)足更多的業(yè)務(wù)需求,但memcache的讀取速度更快些.
∨
REDIS
支持豐富的數(shù)據(jù)結(jié)構(gòu)(在此先不展開(kāi)該方面的討論)
常用項(xiàng):string,hash,list,set,sortedset //redis本身就實(shí)現(xiàn)了雙向列表,list還可模擬出隊(duì)列,堆棧的數(shù)據(jù)結(jié)構(gòu)
value值可達(dá)512M
可持久化:
快照持久化(SNAPSHOTTING)
一定時(shí)間內(nèi)一定數(shù)量的key值的改變,就會(huì)全量復(fù)制redis內(nèi)存管理的數(shù)據(jù)到硬盤(pán).
精細(xì)持久化(AOF)
用來(lái)保存每次執(zhí)行的命令.開(kāi)啟后,每秒保存一次。見(jiàn)下圖的英文注釋
注意事項(xiàng)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61713.html
摘要:項(xiàng)目下的緩存控制客戶(hù)端向服務(wù)端請(qǐng)求頁(yè)面的過(guò)程中,服務(wù)端是可控的??煽氐牟趴蓛?yōu)化,優(yōu)化的重點(diǎn),即是緩存優(yōu)化。如此就能提高數(shù)據(jù)響應(yīng)的速度,也保護(hù)了數(shù)據(jù)源。雖開(kāi)啟擴(kuò)展可管理內(nèi)存,但所能管理的內(nèi)存大小是有限的。見(jiàn)下圖的英文注釋注意事項(xiàng) php項(xiàng)目下的緩存控制 客戶(hù)端向服務(wù)端請(qǐng)求php頁(yè)面的過(guò)程中,服務(wù)端是可控的。 可控的才可優(yōu)化,優(yōu)化的重點(diǎn),即是緩存優(yōu)化。 試想?數(shù)據(jù)存儲(chǔ)在DB中,訪問(wèn)DB就...
摘要:而在這個(gè)微服務(wù)下,同樣需要進(jìn)行數(shù)據(jù)操作,我不可能還要在下再一次進(jìn)行集成,這樣大大的增加了代碼量。其次,是將有關(guān)數(shù)據(jù)操作的都單獨(dú)部署成一個(gè)模塊,比如我集成的模塊,集成的模塊,使用作為內(nèi)存緩存模塊。 前言 相對(duì)于 spring 對(duì) mybatis 以及 redis 等的整合所需要的各種配置文件,在 springboot 下,已經(jīng)大大的簡(jiǎn)化了,你可能只是需要增加個(gè)依賴(lài),加個(gè)注解,然后在配置文...
摘要:分布式各個(gè)服務(wù)器之間互不通信,各自獨(dú)立存取數(shù)據(jù),不共享任何信息。服務(wù)器并不具有分布式功能,分布式部署取決于客戶(hù)端。緩存策略的緩存策略是最近最少使用到期失效策略。在內(nèi)存儲(chǔ)數(shù)據(jù)項(xiàng)時(shí),可以指定它在緩存的失效時(shí)間,默認(rèn)為永久。 一、MemcacheMemcache是一個(gè)高性能,分布式內(nèi)存對(duì)象緩存系統(tǒng),通過(guò)在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的巨大的hash表,它能夠用來(lái)存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件...
摘要:分布式各個(gè)服務(wù)器之間互不通信,各自獨(dú)立存取數(shù)據(jù),不共享任何信息。服務(wù)器并不具有分布式功能,分布式部署取決于客戶(hù)端。緩存策略的緩存策略是最近最少使用到期失效策略。在內(nèi)存儲(chǔ)數(shù)據(jù)項(xiàng)時(shí),可以指定它在緩存的失效時(shí)間,默認(rèn)為永久。 一、MemcacheMemcache是一個(gè)高性能,分布式內(nèi)存對(duì)象緩存系統(tǒng),通過(guò)在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的巨大的hash表,它能夠用來(lái)存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件...
閱讀 860·2021-11-15 17:58
閱讀 3665·2021-11-12 10:36
閱讀 3799·2021-09-22 16:06
閱讀 973·2021-09-10 10:50
閱讀 1335·2019-08-30 11:19
閱讀 3320·2019-08-29 16:26
閱讀 957·2019-08-29 10:55
閱讀 3351·2019-08-26 13:48