memcached :LRU
支持高併發的原因:多路複用IO(消息通知模式)、多線程模式(CPU的核數)
分佈式方案:
# 普通hash分佈(取模)
# 一致性hash分佈(0-232環)
redis:
LRU: 從數據庫中刪除一個最近最少訪問的key
隨機淘汰算法:從數據庫中隨機刪除一個key
TTL淘汰算法:從數據庫中刪除一個最快過期的key
對象計數器:引用到計數器加1,引用失效-1,爲0刪除,可以避免併發時問題。
支持的類型:
String:
List:雙向鏈表(實現消息隊列,頭部取出,尾部放入)
Set:無序集合(投票,無重複)
Sorted Set:有序集合(頂貼次數排序)
Hash:哈希表,類似於數據庫表(存用戶信息)
事務處理
持久化:
#內存快照:存入二進制文件
#日誌追加
主從同步:master上禁止持久化,slave可以
步驟:slave主動連接master;slave發SYCN命令到master請求同步;master備份到rdb;master把rdb文件傳給slave;slave清空數據庫,把rdb導入。
虛擬內存:物理內存不足時。
清除數據:
#定時清除
#用戶獲取數據時