memcached筆記

memcached安裝:

1:yum install -y epel-release

2:yum install -y libevent memcached libmemcached

3:啓動/etc/init.d/memcached start

4:ps aux|grep memcached

5:memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

6:相關的參數在/etc/init.d/memcached和/etc/sysconfig/memcached中定義 只有在/etc/sysconfig/memcached中定義才生效

memcached啓動時參數:

1:-d選項是啓動一個守護進程

2:m是分配給memcached使用的內存數量,單位是MB

3:-u是運行memcached的用戶,如果當前爲root的話,需要使用此參數指定用戶

4:-l是監聽的服務器ip地址

5:-p是設置memcached監聽的端口,默認是11211

6:-c是最大運行的併發連接數,默認是1024

7:-P是設置保存memcached的PID文件

查看memcached運行狀態:

1:memcached-tool 127.0.0.1:11211 stats   還有一個display

2:或者echo stats |nc 127.0.0.1 11211 需要安裝nc工具 yum install -y nc 

3:若安裝libmemcached後,可以使用命令memstat --servers=127.0.0.1:11211查看memcached服務狀態

cmd_get :總的寫入量  get_hits:總的命中量 如果命中率低於80%,說明你的memcached不太好

memcached基本操作:

memcached命令行:

1:telnet 127.0.0.1 11211

2:set key2 0 60 3:key2 是鍵名 0是標記 60是過期時間,單位是秒 3是大小,單位字節

 abc

 STORED

 get key2 :查詢key2

 VALUE key2 0 3

 abc

 END

memcached語法規則:

<command name><key><flags><exptime><bytes>\r\n<data block>\r\n

注:\r\n在Windows下是enter鍵

a)<command name>可以是“set”“add”“replace”.

 “set”表示按照相應的<key>存儲該數據,沒有的時候增加,有的覆蓋。

 “add”表示按照相應的<key>添加該數據,但是如果該<key>已經存在則會操作失敗。

 “replace”表示按照相應的<key>替換數據,但是如果該<key>不存在則會操作失敗。

b)<key>客戶端需要保存數據的key.

c)<flags>是一個16位的無符號整數(以十進制方式表示)。該標誌將和需要存儲的數據一起存儲,並在客戶端get數據時返回,客戶可以將此標誌用作特殊用途,此標誌對服務器來說是不透明的。

d)<exptime>過期的時間。若爲0表示存儲的數據永遠不過期(但可被服務器算法:LRU替換)。如果非0(Unix時間或者距離此時的秒數),當過期後,服務器可以保證用戶得不到該數據(以服務器時間爲標準)。

e)<bytes>需要存儲的字節數,當用戶希望存儲空數據時<bytes>可以爲0。

f)<data block>需要存儲的內容,輸入完成後,最後客戶端需要加上“\r\n”(直接點擊enter)作爲"命令頭”的結束標誌

PHP連接memcached

1:先安裝php的memcached擴展

 wget http://www.lishiming.net/data/p_w_upload/forum/memcache-2.2.3.tgz

 tar zxf memcache-2.2.3.tgz

 cd memcache-2.2.3

 /usr/local/php/bin/phpize

 ./configure --with-php-config=/usr/local/php/bin/php-config

 make && make install

 安裝完後會有這樣類似的提示:

 installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-200906267/

 把這個記住,然後修改php.ini,把extension_dir="./"修改爲extension_dir=/usr/local/servers/php/lib/php/extensions/no-debug-non-zts-200906267"

並添加一行:extension=memcache.so

PHP連接memcached檢驗:

/usr/local/php/bin/php -m|grep memcache

下載測試php腳本

curl www.apelearn.com/study_v2/.memcache.txt >1.php2>/dev/null

/usr/local/php/bin/php 1.php

memcached實現session共享:

1:本實例是在lamp/lnmp環境下實現

  編輯php.ini[session]添加兩行

 session.save_handler = memcache

 session.save_path = "tcp://192.168.0.9:11211"

 或者httpd.conf對應的虛擬主機中添加

 php_value session.save_handler "memcache"

 php_value session.save_path "tcp://192.168.0.9:11211"

 或者php-fpm.conf對應的pool中添加

 php_value[session.save_handler] = memcache

 php_value[session.save_path] = "tcp://192.168.0.9:11211"

memcached session測試:

wget http://study.lishiming.net/.mem_se.txt

mv .mem_se.txt /usr/local/apache2/htdocs/session.php

curl localhost/session.php

類似於1443702394<br><br>1443702394<br><br>i44nunao0g3o7vf2su0hnc5440

telnet 127.0.0.1 11211

get i44nunao0g3o7vf2su0hnc5440


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章