Memcached概念

 

LRU LFU算法介紹算法

LRU算法的設計原則是:若是一個數據在最近一段時間沒有被訪問到,那麼在未來它被訪問的可能性也很小。也就是說,當限定的空間已存滿數據時,應當把最久沒有被訪問到的數據淘汰。服務器

 

LFU(Least Frequently Used)最近最少使用算法。它是基於「若是一個數據在最近一段時間內使用次數不多,那麼在未來一段時間內被使用的可能性也很小」的思路。併發

 

LRU的淘汰規則是基於訪問時間,而LFU是基於訪問次數的。memcached

 

 

Memcached分配內存機制 slab alloction大數據

Memcached會預先分配內存,memcached分配內存方式稱之爲allocator,首先,這裏有3個概念: 
1 slab 
2 page 
3 chunk.net

4 item設計

 

 

LRU LFU算法介紹進程

LRU算法的設計原則是:若是一個數據在最近一段時間沒有被訪問到,那麼在未來它被訪問的可能性也很小。也就是說,當限定的空間已存滿數據時,應當把最久沒有被訪問到的數據淘汰。內存

 

LFU(Least Frequently Used)最近最少使用算法。它是基於「若是一個數據在最近一段時間內使用次數不多,那麼在未來一段時間內被使用的可能性也很小」的思路。get

 

LRU的淘汰規則是基於訪問時間,而LFU是基於訪問次數的。

 

 

Memcached分配內存機制 slab alloction

Memcached會預先分配內存,memcached分配內存方式稱之爲allocator,首先,這裏有3個概念: 
1 slab 
2 page 
3 chunk

4 item

 

 

 

 

 

啓動Memcache的服務器端:

[root@localhost]# /usr/local/bin/memcached -d -m 100 -u root -l 192.168.36.200 -p 11211 -c 256 -P /tmp/memcached.pid  


    -d選項是啓動一個守護進程, 
    -m是分配給Memcache使用的內存數量,單位是MB,我這裏是100MB, 
    -u是運行Memcache的用戶,我這裏是root, 
    -l是監聽的服務器IP地址,若是有多個地址的話,我這裏指定了服務器的IP地址192.168.36.200, 
    -p是設置Memcache監聽的端口,我這裏設置了11211,最好是1024以上的端口,咱們這裏統一使用11211
    -c選項是最大運行的併發鏈接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定。
    -P是設置保存Memcache的pid文件,我這裏是保存在/tmp/memcached.pid, 

 

 

Memcached單進程最大使用內存爲2G,要使用更多內存,能夠分多個端口開啓多個Memcached進程 
  最大30天的數據過時時間,設置爲永久的也會在這個時間過時,常量REALTIME_MAXDELTA 
  60*60*24*30控制 
  最大鍵長爲250字節,大於該長度沒法存儲,常量KEY_MAX_LENGTH 250控制 
  單個item最大數據是1MB,超過1MB數據不予存儲,常量POWER_BLOCK 1048576進行控制, 
  它是默認的slab大小 
  最大同時鏈接數是200,經過 conn_init()中的freetotal進行控制,最大軟鏈接數是1024,經過 
  settings.maxconns=1024 進行控制 
  跟空間佔用相關的參數:settings.factor=1.25, settings.chunk_size=48, 影響slab的數據佔用和步進方式

 

 

啓動Memcache的服務器端:

[root@localhost]# /usr/local/bin/memcached -d -m 100 -u root -l 192.168.36.200 -p 11211 -c 256 -P /tmp/memcached.pid  


    -d選項是啓動一個守護進程, 
    -m是分配給Memcache使用的內存數量,單位是MB,我這裏是100MB, 
    -u是運行Memcache的用戶,我這裏是root, 
    -l是監聽的服務器IP地址,若是有多個地址的話,我這裏指定了服務器的IP地址192.168.36.200, 
    -p是設置Memcache監聽的端口,我這裏設置了11211,最好是1024以上的端口,咱們這裏統一使用11211
    -c選項是最大運行的併發鏈接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定。
    -P是設置保存Memcache的pid文件,我這裏是保存在/tmp/memcached.pid, 

 

 

Memcached單進程最大使用內存爲2G,要使用更多內存,能夠分多個端口開啓多個Memcached進程    最大30天的數據過時時間,設置爲永久的也會在這個時間過時,常量REALTIME_MAXDELTA    60*60*24*30控制    最大鍵長爲250字節,大於該長度沒法存儲,常量KEY_MAX_LENGTH 250控制    單個item最大數據是1MB,超過1MB數據不予存儲,常量POWER_BLOCK 1048576進行控制,    它是默認的slab大小    最大同時鏈接數是200,經過 conn_init()中的freetotal進行控制,最大軟鏈接數是1024,經過    settings.maxconns=1024 進行控制    跟空間佔用相關的參數:settings.factor=1.25, settings.chunk_size=48, 影響slab的數據佔用和步進方式

相關文章
相關標籤/搜索