- N +

magento插件,Chrome插件伴侶

老鐵們,大家好,相信還有很多朋友對于magento插件和Chrome插件伴侶的相關(guān)問題不太懂,沒關(guān)系,今天就由我來為大家分享分享magento插件以及Chrome插件伴侶的問題,文章篇幅可能偏長,希望可以幫助到大家,下面一起來看看吧!

prestashop、zencart、opencart、magento哪一個好

哪一個好?要看從哪一個角度去衡量了。

論功能和插件豐富程度,magento好像首屈一指吧,其次是zencart和opencart.從未來的發(fā)展角度看,opencart憑借其優(yōu)秀的MVC-L架構(gòu)會有很好的前景。

memcache與redis有何區(qū)別,redis有哪些優(yōu)勢呢

簡介

說到緩存技術(shù),只要有一定經(jīng)驗的開發(fā)人員,肯定會想到redis和memcached這兩個。并且在BAT里,redis已經(jīng)逐漸取代了memcached,成為分布式場景廣泛使用的緩存方案。接下來,我們就分析下,redis是如何取代memcached,成為開發(fā)者的寵兒的。

一、支持的存儲類型不同

雖然redis和memcached都是內(nèi)存型數(shù)據(jù)庫,并且memcached不僅能夠存儲string類型,還能夠存儲圖片、文件、視頻等格式的文件。然而對于更多的使用內(nèi)存數(shù)據(jù)庫做緩存以及分布式方案的程序開發(fā)者來說,memcached提供的string類型存儲的應(yīng)用場景非常有限,而存儲圖片視頻的功能又十分雞肋(許多公司的用戶場景是沒這方面需求)。相比之下,redis提供set,hash,list等多種類型的存儲結(jié)構(gòu),非常適合分布式緩存的實現(xiàn)。

二、數(shù)據(jù)落盤

memcached數(shù)據(jù)不可恢復(fù),雖然大多數(shù)人使用緩存以及分布式方案都不會要求數(shù)據(jù)持久化,但是誰也不能保證不出現(xiàn)萬一的情況。一旦發(fā)生穩(wěn)定性問題,memcached掛掉后,數(shù)據(jù)是不可恢復(fù)的,而redis除了支持在配置里打開數(shù)據(jù)落盤(RDB),還能通過aof來找回數(shù)據(jù)。

三、內(nèi)存空間與數(shù)據(jù)量

memcached可以修改最大內(nèi)存,使用的是LRU算法,而redis目前底層使用了自己的VM,引入了新的特性突破了物理內(nèi)存的限制。個人認為在這方面依然是redis更加優(yōu)秀一些。

備注:value值-redis最大可以達到1GB,而memcache只有1MB;

四、使用場景

(1)、會話緩存(SessionCache)

最常用的一種使用Redis的情景是會話緩存(sessioncache)。用Redis緩存會話比其他存儲(如Memcached)的優(yōu)勢在于:Redis提供持久化。當維護一個不是嚴格要求一致性的緩存時,如果用戶的購物車信息全部丟失,大部分人都會不高興的,現(xiàn)在,他們還會這樣嗎?

幸運的是,隨著Redis這些年的改進,很容易找到怎么恰當?shù)氖褂肦edis來緩存會話的文檔。甚至廣為人知的商業(yè)平臺Magento也提供Redis的插件。

(2)、全頁緩存(FPC)

除基本的會話token之外,Redis還提供很簡便的FPC平臺?;氐揭恢滦詥栴},即使重啟了Redis實例,因為有磁盤的持久化,用戶也不會看到頁面加載速度的下降,這是一個極大改進,類似PHP本地FPC。

再次以Magento為例,Magento提供一個插件來使用Redis作為全頁緩存后端。

此外,對WordPress的用戶來說,Pantheon有一個非常好的插件wp-redis,這個插件能幫助你以最快速度加載你曾瀏覽過的頁面。

(3)、隊列

Reids在內(nèi)存存儲引擎領(lǐng)域的一大優(yōu)點是提供list和set操作,這使得Redis能作為一個很好的消息隊列平臺來使用。Redis作為隊列使用的操作,就類似于本地程序語言(如Python)對list的push/pop操作。

如果你快速的在Google中搜索“Redisqueues”,你馬上就能找到大量的開源項目,這些項目的目的就是利用Redis創(chuàng)建非常好的后端工具,以滿足各種隊列需求。例如,Celery有一個后臺就是使用Redis作為broker,你可以從這里去查看。

(4),排行榜/計數(shù)器

Redis在內(nèi)存中對數(shù)字進行遞增或遞減的操作實現(xiàn)的非常好。集合(Set)和有序集合(SortedSet)也使得我們在執(zhí)行這些操作的時候變的非常簡單,Redis只是正好提供了這兩種數(shù)據(jù)結(jié)構(gòu)。所以,我們要從排序集合中獲取到排名最靠前的10個用戶–我們稱之為“user_scores”,我們只需要像下面一樣執(zhí)行即可:

當然,這是假定你是根據(jù)你用戶的分數(shù)做遞增的排序。如果你想返回用戶及用戶的分數(shù),你需要這樣執(zhí)行:

ZRANGEuser_scores010WITHSCORES

AgoraGames就是一個很好的例子,用Ruby實現(xiàn)的,它的排行榜就是使用Redis來存儲數(shù)據(jù)的,你可以在這里看到。

(5)、發(fā)布/訂閱

最后(但肯定不是最不重要的)是Redis的發(fā)布/訂閱功能。發(fā)布/訂閱的使用場景確實非常多。我已看見人們在社交網(wǎng)絡(luò)連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器,甚至用Redis的發(fā)布/訂閱功能來建立聊天系統(tǒng)!(不,這是真的,你可以去核實)。

(6)、其他

但是如果是對緩存的數(shù)據(jù)格式有更多的要求,且對安全性也有很高的要求的話,建議還是使用redis,這也是redis目前正在逐漸代替memcached的根本原因。

五、總結(jié)

六、快問快答

1、redis常見性能問題和解決方案?

(1)Master最好不要做任何持久化工作,如RDB內(nèi)存快照和AOF日志文件

(2)如果數(shù)據(jù)比較重要,某個Slave開啟AOF備份數(shù)據(jù),策略設(shè)置為每秒同步一次

(3)為了主從復(fù)制的速度和連接的穩(wěn)定性,Master和Slave最好在同一個局域網(wǎng)內(nèi)

(4)盡量避免在壓力很大的主庫上增加從庫

(5)主從復(fù)制不要用圖狀結(jié)構(gòu),用單向鏈表結(jié)構(gòu)更為穩(wěn)定,即:Master<-Slave1<-Slave2<-Slave3…

這樣的結(jié)構(gòu)方便解決單點故障問題,實現(xiàn)Slave對Master的替換。如果Master掛了,可以立刻啟用Slave1做Master,其他不變。

2、MySQL里有2000w數(shù)據(jù),redis中只存20w的數(shù)據(jù),如何保證redis中的數(shù)據(jù)都是熱點數(shù)據(jù)?

相關(guān)知識:redis內(nèi)存數(shù)據(jù)集大小上升到一定大小的時候,就會施行數(shù)據(jù)淘汰策略。redis提供6種數(shù)據(jù)淘汰策略:

voltile-lru:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選最近最少使用的數(shù)據(jù)淘汰;

volatile-ttl:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選將要過期的數(shù)據(jù)淘汰;

volatile-random:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中任意選擇數(shù)據(jù)淘汰;

allkeys-lru:從數(shù)據(jù)集(server.db[i].dict)中挑選最近最少使用的數(shù)據(jù)淘汰;

allkeys-random:從數(shù)據(jù)集(server.db[i].dict)中任意選擇數(shù)據(jù)淘汰

no-enviction(驅(qū)逐):禁止驅(qū)逐數(shù)據(jù);

七、經(jīng)典架構(gòu)

---------------END----------------

后續(xù)的內(nèi)容同樣精彩

文章分享結(jié)束,magento插件和Chrome插件伴侶的答案你都知道了嗎?歡迎再次光臨本站哦!

返回列表
上一篇:
下一篇: