六星源課堂:Python編程之Redis和Memcache有什么區(qū)別?
Redis和Memcache的區(qū)別?Redis即遠(yuǎn)程字典服務(wù),是一個(gè)開源的使用ANSI C語言編寫的、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,提供多種語言的API;Memcache是一套分布式的高速緩存系統(tǒng),被許多網(wǎng)站使用,接下來我們一起來看看更詳細(xì)的內(nèi)容介紹。

1. Redis和Memcache都是將數(shù)據(jù)存放在內(nèi)存中,都是內(nèi)存數(shù)據(jù)庫,不過Memcache還可以用于緩存其他東西,比如圖片、視頻等;
2. Redis不僅僅支持簡單的K/V類型的數(shù)據(jù),同時(shí)還提供list、set、hash等數(shù)據(jù)結(jié)構(gòu)的存儲;
3. 虛擬內(nèi)存-Redis當(dāng)物流內(nèi)存用完時(shí),可以將一些很久的沒用的Value交換到磁盤;
4. 過期策略-Memcache在set時(shí)就指定,比如set key 1008,即永不過期,Redis可以通過例如expire設(shè)定,例如expire name10;
5. 分布式-設(shè)定Memcache集群,利用magent做一主多從,redis可以做一主多從,都可以一主一從;
6. 存儲數(shù)據(jù)安全-Memcache掛掉后,數(shù)據(jù)沒了,redis可以定期保存到磁盤;
7. 災(zāi)難恢復(fù)-Memcache掛掉后,數(shù)據(jù)不可恢復(fù),redis數(shù)據(jù)丟失后可以通過aof恢復(fù);
8. Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份;
9. 應(yīng)用場景不一樣,Redis除了作為nosql數(shù)據(jù)庫使用外,還能用做消息隊(duì)列,數(shù)據(jù)堆棧和數(shù)據(jù)緩存等;Memcache適合于緩存sql語句,數(shù)據(jù)集,用戶臨時(shí)性數(shù)據(jù),延遲查詢數(shù)據(jù)和session等;
10. 如果有持久化方面的需求或者對數(shù)據(jù)類型和處理有要求的應(yīng)該選擇Redis;如果簡單的key/value存儲應(yīng)該選擇Memcache。
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多Python技巧,歡迎持續(xù)關(guān)注六星源課堂!