# MemCache
* 默認端口:11211
* 最大存儲值:1M
* 哈希一致性 通過 crc32 算法
>* 想象一下,將32位的所有數字從小到大按順時針分布在一個圓環上;
其次,將每個存儲節點賦予一個名字,并通過crc32函數將其轉換為32位的數字,此數字就是該memcached服務器的存儲節點
接著,將key也通過crc32函數轉換為32位的數字,它的所在位置按順時針方向走第一個遇到的存儲節點所對應的memcached服務器就是該key的最終存儲服務器。
>* 相對于取模方式分布式,一致性哈希方式分布式的代碼復雜性要高一點,但這也在可以接受的范圍內,不構成任何阻礙問題。相反它的優點就非常顯著,通過虛擬節點的方式實現,可以使不可控的存儲節點能夠盡可能的均勻分布在圓環上,從而達到數據均勻緩存在各個主機里。其次增加與刪除虛擬節點對于之前緩存的整體數據影響非常小。
* 取模計算
* * 優點:
1、簡單實用易理解
2、數據分布均勻
* * 缺點:
1、宕了一臺memcached服務器時不能自動調整群組去處理數據,使一部分數據不能使用緩存,一直持續從數據庫中獲取數據。
2、當需要擴容的時候,增加多臺memcached服務器,那么原來已經緩存的數據大多數都不能夠被命中,即數據無用。
>memcache默認過期時間是30天,過期時間用秒為單位或時間戳為單位,前一種情況秒數不能超過60×60×24×30(30天時間的秒數);如果失效的值大于這個值, 服務端會將其作為一個真實的Unix時間戳來處理而不是自當前時間的偏移。如果過期時間設定為0,表示永不過期,但也不是相對的,有可能因為服務端為了給其他新的元素分配空間而被LRU算法刪除。
- 簡介
- PHP
- 字符串函數
- 數組函數
- 正則
- 加密函數
- 面向對象
- 關鍵字
- 設計模式
- 魔術方法
- 機制擴展
- 會話機制
- PHP框架
- laravel
- 問題
- swoole
- easyswoole
- workerman
- 數據庫
- Sphinx
- MongoDB
- MemCache
- Redis
- 基礎操作
- 數據類型
- 持久化
- 分布式鎖
- 內存模型
- redis高級特性
- MySql
- 基礎操作
- 數據類型
- 數據表引擎
- 鎖機制
- 事務處理
- 存儲過程
- 觸發器
- 索引
- 關聯查詢
- 分析SQL語句-優化查詢
- 分區分表
- 主從復制
- MySql安全性
- 網絡協議
- HTTP
- header詳解
- 狀態碼
- nginx-配置
- 邏輯算法
- 時間和空間復雜度
- 常見算法
- 數據結構
- 核心
- 進程、線程、協程
- 存儲容量-計量單位
- 開發軟件及配置
- 版本控制器
- Git
- Fidder
- Fidder-Android7
- 自動化部署
- Jenkins
- supervisor
- Elasticsearch
- LogStash
- RabbitMQ
- AB測試
- JAVA-JDK
- FileBeat
- PhpStorm
- Composer
- Linux
- API安全
- 高并發及大流量相關概念
- 網站優化
- WEB
- Electron