程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> Redis和Memcache的對比

Redis和Memcache的對比

編輯:PHP基礎知識
 

1、 Redis和Memcache都是將數據存放在內存中,都是內存數據庫。不過memcache還可用於緩存其他東西,例如圖片、視頻等等。
2、 數據類型–Memcache在添加數據時就要指定數據的字節長度,例如:

set key1 0 0 8

looksky

STORED

而redis不需要,如:redis 127.0.0.1:6379>set key2 “looksky”

OK

redis 127.0.0.1:6379>get key2

”looksky”
3、虛擬內存–Redis當物理內存用完時,可以將一些很久沒用到的value 交換到磁盤.
4、過期策略–memcache在set時就指定,例如set key1 0 0 8,即永不過期。Redis可以通過例如expire 設定,例如expire name 10
5、分布式–設定memcache集群,利用magent做一主多從;redis可以做一主多從。
6、存儲數據安全–memcache掛掉後,數據就沒了;redis可以定期保存到磁盤(持久化)。
7、災難恢復–memcache掛掉後,數據不可恢復; redis數據丟失後可以通過aof恢復。

 

8、數據一致性不同–redis使用的是單線程模型,保證了數據按順序提交。

memcache需要使用cas保證數據一致性。CAS(Check and Set)是一個確保並發一致性的機制,屬於“樂觀鎖”范疇;原理很簡單:拿版本號,操作,對比版本號,如果一致就操作,不一致就放棄任何操作。

 

9、cpu利用–memCache是多線程,redis單線程模型只能使用一個cpu,可以開啟多個redis進程。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved