基于LNMP網站平臺,測試增加memcached緩存系統后網站訪問效果

LNMP安裝教程鏈接:22-love cat 17周博客作業第2部分-構建一個LVS-DR模型的高性能集群

memcached 安裝及測試效果

一、概念

    memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協議與守護進程通信。

    memcached是一套分布式的快取系統,當初是Danga Interactive為了LiveJournal所發展的,但被許多軟件(如MediaWiki)所使用。這是一套開放源代碼軟件,以BSD license授權協議發布。(以上概念介紹引用百度百科)

適用memcached的場景:

    分布式應用。由于memcached本身基于分布式的系統,所以尤其適合大型的分布式系統。

    數據庫前段緩存。數據庫常常是網站系統的瓶頸。數據庫的大并發量訪問,常常造成網站內存溢出。當然我們也可以使用Hibernate的緩存機制。但memcached是基于分布式的,并可獨立于網站應用本身,所以更適合大型網站進行應用的拆分。

    服務器間數據共享。舉例來講,我們將網站的登錄系統、查詢系統拆分為兩個應用,放在不同的服務器上,并進行集群,那這個時候用戶登錄后,登錄信息如何從登錄系統服務器同步到查詢系統服務器呢?這時候,我們便可以使用memcached,登錄系統將登錄信息緩存起來,查詢系統便可以獲得登錄信息,就像獲取本地信息一樣。

不適用memcached的場景:

    那些不需要“分布”的,不需要共享的,或者干脆規模小到只有一臺服務器的應用,memcached不會帶來任何好處,相反還會拖慢系統效率,因為網絡連接同樣需要資源。

二、安裝memcached

[root@php-server ~]# yum install -y memcached.x86_64     #yum安裝memcached
[root@php-server ~]# yum info memcached                  #列出memcached的rpm包信息 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * atomic: mirrors.neusoft.edu.cn
 * base: centos.ustc.edu.cn
 * epel: mirror01.idc.hinet.net
 * extras: centos.ustc.edu.cn
 * updates: mirrors.sina.cn
 * webtatic: us-east.repo.webtatic.com
Installed Packages
Name        : memcached
Arch        : x86_64
Version     : 1.4.24
Release     : 5.el6.art
Size        : 200 k
Repo        : installed
From repo   : atomic
Summary     : High Performance, Distributed Memory Object Cache
URL         : http://www.memcached.org/
License     : BSD
Description : memcached is a high-performance, distributed memory object caching
            : system, generic in nature, but intended for use in speeding up dynamic
            : web applications by alleviating database load.  #這就是為什么memcached可以減輕databases的原因  [root@php-server ~]# rpm -ql memcached                   #安裝完memcached后,我們看下文件
/etc/rc.d/init.d/memcached                               #啟動腳步
/etc/sysconfig/memcached                                 #配置文件
/usr/bin/memcached                                       #主程序文件目錄位置
/usr/bin/memcached-tool                                  #工具程序文件目錄位置
/usr/share/doc/memcached-1.4.24                          #后面的就不介紹了
/usr/share/doc/memcached-1.4.24/AUTHORS
/usr/share/doc/memcached-1.4.24/CONTRIBUTORS
/usr/share/doc/memcached-1.4.24/COPYING
/usr/share/doc/memcached-1.4.24/ChangeLog
/usr/share/doc/memcached-1.4.24/NEWS
/usr/share/doc/memcached-1.4.24/new_lru.txt
/usr/share/doc/memcached-1.4.24/protocol.txt
/usr/share/doc/memcached-1.4.24/readme.txt
/usr/share/doc/memcached-1.4.24/threads.txt
/usr/share/man/man1/memcached.1.gz
/var/run/memcached
[root@php-server ~]# cat /etc/sysconfig/memcached 
PORT="11211"                                            #memcached監聽在哪個端口上
USER="memcached"                                        #運行memcached進程的用戶
MAXCONN="1024"                                          #最大連接數
CACHESIZE="64"                                          #緩存大小(實際生產不會只有64M)
OPTIONS=""                                              #其他選項
[root@php-server ~]# service memcached start            #啟動memcached服務
Starting memcached:                                        [  OK  ]
[root@php-server ~]# netstat -tunlp |grep memcached     
tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      1672/memcached      
tcp        0      0 :::11211                    :::*                        LISTEN      1672/memcached      
udp        0      0 0.0.0.0:11211               0.0.0.0:*                               1672/memcached      
udp        0      0 :::11211                    :::*                                    1672/memcache

三、memcached命令介紹

常用命令含義說明,如下表所示:

選項

含義說

-d 指定memcached進程作為一個守護進程啟動
-m <num> 指定分配給memcached使用的內存,單位是MB,默認為64;
-u <username> 運行memcached的用戶
-l <ip_addr> 監聽的服務器IP地址,如果有多個地址的話,使用逗號分隔,格式可以為“IP地址:端口號”,例如:-l 指定192.168.0.184:19830,192.168.0.195:13542;端口號也可以通過-p選項指定
-p <num> Listen on TCP port <num>, the default is port 11211.
-c <num> 設置最大運行的并發連接數,默認是1024
-R <num> 為避免客戶端餓死(starvation),對連續達到的客戶端請求數設置一個限額,如果超過該設置,會選擇另一個連接來處理請求,默認為20
-k 設置鎖定所有分頁的內存,對于大緩存應用場景,謹慎使用該選項
-P 保存memcached進程的pid文件
-s <file> 指定Memcached用于監聽的UNIX socket文件
-a <perms> 設置-s選項指定的UNIX socket文件的權限
-U <num> Listen on UDP port <num>, the default is port 11211, 0 is off.
-M 當內存使用超出配置值時,禁止自動清除緩存中的數據項,此時Memcached不可以,直到內存被釋放
-r 設置產生core文件大小
-f <factor> 用于計算緩存數據項的內存塊大小的乘數因子,The default is 1.25.
-n 為緩存數據項的key、value、flag設置最小分配字節數,默認是48
-C Disable the use of CAS (and reduce the per-item size by 8 bytes).
-h 顯示Memcached版本和摘要信息
-v 輸出警告和錯誤信息
-vv 打印信息比-v更詳細:不僅輸出警告和錯誤信息,也輸出客戶端請求和響應信息
-i 打印libevent和Memcached的licenses信息
-t <threads> 處理用于請求的線程數,The default is 4.
-D <char> 用于統計報告中Key前綴和ID之間的分隔符,默認是冒號“:”
-L 嘗試使用大內存分頁(pages)
-B <proto> 指定使用的協議,默認行為是自動協商(autonegotiate),可能使用的選項有auto、ascii、binary。
-I <size> 覆蓋默認的STAB頁大小,默認是1M
-F 禁用flush_all命令
-o <options> 指定逗號分隔的選項,一般用于用于擴展或實驗性質的選項

stats命令

STAT pid 22362    //memcache服務器的進程ID  
STAT uptime 1469315    //服務器已經運行的秒數
STAT time 1339671194    //服務器當前的unix時間戳
STAT version 1.4.9    //memcache版本
STAT libevent 1.4.9-stable    //libevent版本
STAT pointer_size 64    //當前操作系統的指針大?。?2位系統一般是32bit,64就是64位操作系統)
STAT rusage_user 3695.485200    //進程的累計用戶時間
STAT rusage_system 14751.273465    //進程的累計系統時間
STAT curr_connections 69    //服務器當前存儲的items數量
STAT total_connections 855430    //從服務器啟動以后存儲的items總數量
STAT connection_structures 74    //服務器分配的連接構造數
STAT reserved_fds 20    //
STAT cmd_get 328806688    //get命令(獲?。┛傉埱蟠螖?
STAT cmd_set 75441133    //set命令(保存)總請求次數  
STAT cmd_flush 34    //flush命令請求次數
STAT cmd_touch 0    //touch命令請求次數
STAT get_hits 253547177    //總命中次數
STAT get_misses 75259511    //總未命中次數
STAT delete_misses 4    //delete命令未命中次數
STAT delete_hits 565730    //delete命令命中次數
STAT incr_misses 0    //incr命令未命中次數
STAT incr_hits 0    //incr命令命中次數
STAT decr_misses 0    //decr命令未命中次數
STAT decr_hits 0    //decr命令命中次數
STAT cas_misses 0    //cas命令未命中次數
STAT cas_hits 0        //cas命令命中次數
STAT cas_badval 0    //使用擦拭次數
STAT touch_hits 0    //touch命令未命中次數
STAT touch_misses 0    //touch命令命中次數
STAT auth_cmds 0    //認證命令處理的次數
STAT auth_errors 0    //認證失敗數目
STAT bytes_read 545701515844        //總讀取字節數(請求字節數)
STAT bytes_written 1649639749866    //總發送字節數(結果字節數)
STAT limit_maxbytes 2147483648        //分配給memcache的內存大?。ㄗ止潱?
STAT accepting_conns 1            //服務器是否達到過最大連接(0/1)
STAT listen_disabled_num 0    //失效的監聽數
STAT threads 4        //當前線程數
STAT conn_yields 14    //連接操作主動放棄數目
STAT hash_power_level 16    //
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 30705763
STAT evicted_unfetched 0
STAT bytes 61380700    //當前存儲占用的字節數
STAT curr_items 28786    //當前存儲的數據總數
STAT total_items 75441133    //啟動以來存儲的數據總數
STAT evictions 0    //為獲取空閑內存而刪除的items數(分配給memcache的空間用滿后需要刪除舊的items來得到空間分配給新的items)
STAT reclaimed 39957976    //已過期的數據條目來存儲新數據的數目
END

上面給出了各個統計項的含義說明,不再累述,stats命令有幾個二級子項,說明如下表所示:

命令 含義說明
stats slabs 顯示各個slab的信息,包括chunk的大小、數目、使用情況等
stats items 顯示各個slab中item的數目和最老item的年齡(最后一次訪問距離現在的秒數)
stats detail [on|off|dump] 設置或者顯示詳細操作記錄;
參數為on,打開詳細操作記錄;
參數為off,關閉詳細操作記錄;
參數為dump,顯示詳細操作記錄(每一個鍵值get、set、hit、del的次數)
stats malloc 打印內存分配信息
stats sizes 打印緩存使用信息
stats reset 重置統計信息

下面的命令,我們通過表格的形式說明,如下表所示:

命令 用法格式 含義說明 示例
get get <key>*\r\n 用于獲取緩存的數據,鍵為key。 get name
VALUE name 0 7
shirdrn
END
gets gets <key>*\r\n 用于獲取緩存的數據,鍵為一組key。 gets name hobby
VALUE name 1 7
1234567
VALUE hobby 0 25
tenis basketball football
END
set set <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n 向緩存中存儲數據,不管key對應的值存在與否,都設置key對應的值。 set name 0 1800 7
shirdrn
STORED
get name
VALUE name 0 7
shirdrn
END
touch touch <key> <exptime> [noreply]\r\n 更新緩存中key對應的值的過期時間。 touch name 1800
delete delete <key> [<time>] [noreply]\r\n 給定鍵key,刪除緩存中key對應的數據。 delete name 60
add add <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n 向緩存中存儲數據,只有key對應的值不存在時,才會設置key對應的值。 add hobby 0 1800 10
basketball
STORED
get hobby

VALUE hobby 0 10
basketball
END

replace replace <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n 覆蓋一個已經存在Key及其對應的Value,替換一定要保證替換后的值的長度原始長度相同,否則replace失敗。 get name
VALUE name 0 7
shirdrn
END
replace name 0 1800 7
youak47
STORED
get name
VALUE name 0 7
youak47
END
append append <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n 在一個已經存在的數據值(value)上追加,是在數據值的后面追加。 get hobby
VALUE hobby 0 10
basketball
END
append hobby 0 1800 9
football
STORED
get hobby
VALUE hobby 0 19
basketball football
END
prepend prepend <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n 在一個已經存在的數據值(value)上追加,是在數據值的前面追加。 get hobby
VALUE hobby 0 19
basketball football
END
prepend hobby 0 1800 6
tenis
STORED
get hobby
VALUE hobby 0 25
tenis basketball football
END
incr incr <key> <value> [noreply]\r\n 計數命令,可以在原來已經存在的數字上進行累加求和,計算并存儲新的數值。 set active_users 0 1000000 7
1000000
STORED
get active_users
VALUE active_users 0 7
1000000
END
incr active_users 99
1000099
decr decr <key> <value> [noreply]\r\n 計數命令,可以在原來已經存在的數字上進行減法計算,計算并存儲新的數值。 get active_users
VALUE active_users 0 7
1000099
END
decr active_users 3456
996643
flush_all flush_all [<time>] [noreply]\r\n 使緩存中的數據項失效,可選參數是在多少秒后失效。 flush_all 1800
version version\r\n 返回Memcached服務器的版本信息。 version
quit quit\r\n 退出telnet終端。 quit

memcached默認沒有認證機制,但可借助于SASL進行認證;

PHP有兩種Memcached擴展,老一點的叫memcache,新一點的叫memcached:

1、php-pecl-memcache.x86_64                   3.0.8-3.el6.art              atomic  

[root@php-server ~]# yum info php-pecl-memcache.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * atomic: mirrors.neusoft.edu.cn
 * base: centos.ustc.edu.cn
 * epel: mirror01.idc.hinet.net
 * extras: centos.ustc.edu.cn
 * updates: mirrors.sina.cn
 * webtatic: us-east.repo.webtatic.com
Available Packages
Name        : php-pecl-memcache
Arch        : x86_64
Version     : 3.0.8
Release     : 3.el6.art
Size        : 83 k
Repo        : atomic
Summary     : Extension to work with the Memcached caching daemon
URL         : http://pecl.php.net/package/memcache
License     : PHP
Description : Memcached is a caching daemon designed especially for
            : dynamic web applications to decrease database load by
            : storing objects in memory.
            : 
            : This extension allows you to work with memcached through
            : handy OO and procedural interfaces.
            : 
            : Memcache can be used as a PHP session handler.

2、php-pecl-memcached.x86_64                  2.1.0-9.el6.art              atomic

[root@php-server ~]# yum info php-pecl-memcached.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * atomic: mirrors.neusoft.edu.cn
 * base: centos.ustc.edu.cn
 * epel: mirror01.idc.hinet.net
 * extras: centos.ustc.edu.cn
 * updates: mirrors.yun-idc.com
 * webtatic: us-east.repo.webtatic.com
Available Packages
Name        : php-pecl-memcached
Arch        : x86_64
Version     : 2.1.0
Release     : 9.el6.art
Size        : 55 k
Repo        : atomic
Summary     : Extension to work with the Memcached caching daemon
URL         : http://pecl.php.net/package/memcached
License     : PHP and MIT
Description : This extension uses libmemcached library to provide API for communicating
            : with memcached servers.
            : 
            : memcached is a high-performance, distributed memory object caching system,
            : generic in nature, but intended for use in speeding up dynamic web
            : applications by alleviating database load.
            : 
            : It also provides a session handler (memcached).

    libmemcached 是一個 memcached 的庫,客戶端庫,C 和 C++ 語言實現的客戶端庫,具有低內存占用率、線程安全、并提供對memcached功能的全面支持,下面我們安裝libmemcached.x86_64:

[root@php-server ~]# yum install -y libmemcached.x86_64 
[root@php-server ~]# rpm -ql libmemcached     #不一一舉例,只舉例memstat
/usr/bin/memaslap
/usr/bin/memcapable
/usr/bin/memcat
/usr/bin/memcp
/usr/bin/memdump
/usr/bin/memerror
/usr/bin/memexist
/usr/bin/memflush                   
/usr/bin/memparse
/usr/bin/memping
/usr/bin/memrm
/usr/bin/memslap
/usr/bin/memstat                   
/usr/bin/memtouch
/usr/lib64/libhashkit.so.2
/usr/lib64/libhashkit.so.2.0.0
/usr/lib64/libmemcached.so.11
/usr/lib64/libmemcached.so.11.0.0
/usr/lib64/libmemcachedprotocol.so.0
/usr/lib64/libmemcachedprotocol.so.0.0.0
/usr/lib64/libmemcachedutil.so.2
/usr/lib64/libmemcachedutil.so.2.0.0
/usr/share/doc/libmemcached-1.0.18
/usr/share/doc/libmemcached-1.0.18/AUTHORS
/usr/share/doc/libmemcached-1.0.18/COPYING
/usr/share/doc/libmemcached-1.0.18/ChangeLog
/usr/share/doc/libmemcached-1.0.18/README
/usr/share/doc/libmemcached-1.0.18/THANKS
/usr/share/doc/libmemcached-1.0.18/TODO
/usr/share/man/man1/memaslap.1.gz
/usr/share/man/man1/memcapable.1.gz
/usr/share/man/man1/memcat.1.gz
/usr/share/man/man1/memcp.1.gz
/usr/share/man/man1/memdump.1.gz
/usr/share/man/man1/memerror.1.gz
/usr/share/man/man1/memexist.1.gz
/usr/share/man/man1/memflush.1.gz
/usr/share/man/man1/memparse.1.gz
/usr/share/man/man1/memping.1.gz
/usr/share/man/man1/memrm.1.gz
/usr/share/man/man1/memslap.1.gz
/usr/share/man/man1/memstat.1.gz
/usr/share/man/man1/memtouch.1.gz
[root@php-server ~]# memstat --help
memstat v1.0

	Output the state of a memcached cluster.

Current options. A '=' means the option takes a value.

	 --args=
		Argument for statistics
	 --version 
		Display the version of the application and then exit.
	 --help 
		Display this message and then exit.
	 --quiet 
		stderr and stdin will be closed at application startup.
	 --verbose 
		Give more details on the progression of the application.
	 --binary 
		Switch to binary protocol.
	 --debug 
		Provide output only useful for debugging.
	 --server-version 
		Memcached daemon software version
	 --servers=
		List which servers you wish to connect to.
	 --analyze=
		Analyze the provided servers.
	 --username=
		Username to use for SASL authentication
	 --password=
		Password to use for SASL authentication

[root@php-server ~]# memstat --servers=127.0.0.1
Server: 127.0.0.1 (11211)
	 pid: 1672
	 uptime: 3347
	 time: 1471763883
	 version: 1.4.24
	 libevent: 1.4.13-stable
	 pointer_size: 64
	 rusage_user: 0.042993
	 rusage_system: 0.055991
	 curr_connections: 10
	 total_connections: 14
	 connection_structures: 11
	 reserved_fds: 20
	 cmd_get: 0
	 cmd_set: 0
	 cmd_flush: 0
	 cmd_touch: 0
	 get_hits: 0
	 get_misses: 0
	 delete_misses: 0
	 delete_hits: 0
	 incr_misses: 0
	 incr_hits: 0
	 decr_misses: 0
	 decr_hits: 0
	 cas_misses: 0
	 cas_hits: 0
	 cas_badval: 0
	 touch_hits: 0
	 touch_misses: 0
	 auth_cmds: 0
	 auth_errors: 0
	 bytes_read: 9754
	 bytes_written: 1435
	 limit_maxbytes: 67108864
	 accepting_conns: 1
	 listen_disabled_num: 0
	 threads: 4
	 conn_yields: 0
	 hash_power_level: 16
	 hash_bytes: 524288
	 hash_is_expanding: 0
	 malloc_fails: 0
	 bytes: 0
	 curr_items: 0
	 total_items: 0
	 expired_unfetched: 0
	 evicted_unfetched: 0
	 evictions: 0
	 reclaimed: 0
	 crawler_reclaimed: 0
	 crawler_items_checked: 0
	 lrutail_reflocked: 0

LB Cluster保持會話的方法:

    session sticky
    session cluster
    session server

四、為php安裝memcached擴展

    php有兩個版本的memcached客戶端,這里介紹memcached這個是新版的客戶端是基于libmemcached,所以必須要安裝libmemcached,命令為:

[root@php-server ~]# yum install -y php-pecl-memcached.x86_64
[root@php-server ~]# ll /usr/lib64/php/modules/               #將memcached.so信息添加到php.ini
total 5980
-rwxr-xr-x 1 root root  241589 Jun 10 00:34 curl.so
-rwxr-xr-x 1 root root 3153493 Jun 10 00:34 fileinfo.so
-rwxr-xr-x 1 root root   42480 Feb 11  2016 igbinary.so
-rwxr-xr-x 1 root root  150412 Jun 10 00:34 json.so
-rwxr-xr-x 1 root root  147183 Jun 10 00:34 mcrypt.so
-rwxr-xr-x 1 root root   86984 Aug  2  2013 memcached.so
-rwxr-xr-x 1 root root  861233 Jun 10 00:34 phar.so
-rwxr-xr-x 1 root root 1428036 Jun 10 00:34 zip.so
[root@php-server ~]# wget  
[root@php-server ~]# tar -xvf memcache-2.2.7.tgz
[root@php-server ~]# cd memcache-2.2.7
[root@php-server memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/opt/application/php/bin/php-config
[root@php-server memcache-2.2.7]# make;make install
[root@php-server memcache-2.2.7]# vim /etc/php.ini    #修改php.ini配置文件
extension_dir = "/opt/application/php/lib/php/extensions/no-debug-non-zts-20131226/"
extension = "memcache.so"
[root@php-server memcache-2.2.7]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
或者:
[root@php-server memcache-2.2.7]# cp /opt/application/php/lib/php/extensions/no-debug-non-zts-20131226/* /opt/application/php/lib/php/extensions/
[root@php-server memcache-2.2.7]# vim /etc/php.ini
extension = "memcache.so"

打開php探針網頁:

blob.png

測試memcached

[root@php-server ~]# telnet 192.168.2.214 11211
STAT pid 20439  —— Memcached 進程的ID
STAT uptime 179982 —— 進程運行時間
STAT time 1471773767 ——當前時間
STAT version 1.4.24
STAT libevent 1.4.13-stable
STAT pointer_size 32
STAT rusage_user 21.916668
STAT rusage_system 40.576831
STAT curr_connections 11
STAT total_connections 329
STAT connection_structures 23
STAT reserved_fds 20
STAT cmd_get 2363348 —— 總共獲取數據的次數(等于 get_hits + get_misses )
STAT cmd_set 279971 —— 總共設置數據的次數
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 2286284 —— 命中了多少次數據,也就是從 Memcached 緩存中成功獲取數據的次數
STAT get_misses 77064 —— 沒有命中的次數
STAT delete_misses 30803
STAT delete_hits 48876
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 574591015
STAT bytes_written 4353057466
STAT limit_maxbytes 67108864 —— 總的存儲大小,默認為 64M
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 262144
STAT hash_is_expanding 0
STAT bytes 4717345 —— 當前所用存儲大小
STAT curr_items 5654
STAT total_items 58461
STAT expired_unfetched 17
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 49
END

用python測試memcached

[root@php-server ~]# more python-memcached.py 
#!/usr/bin/env python
import memcache
mc = memcache.Client(['127.0.0.1:11211'], debug=1)

mc.set("some_key", "Some value")
value = mc.get("some_key")
print value

mc.set("another_key", 3)
mc.delete("another_key")

mc.set("key", "1")   # note that the key used for incr/decr must be a string.
mc.incr("key")
mc.decr("key")
[root@php-server ~]# python python-memcached.py 
Some value

還可以用memadmin工具

blob.png

原創文章,作者:zuoyang1990,如若轉載,請注明出處:http://www.www58058.com/38301

(0)
zuoyang1990zuoyang1990
上一篇 2016-08-22
下一篇 2016-08-22

相關推薦

  • MySQL高可用架構之Galera Cluster

    MySQL高可用架構之Galera Cluster 1、實驗準備及拓撲 至少需要三個節點 node1 192.168.150.137 node2 192.168.150.138 node3 192.168.150.139 mariadb版本為mariadb的支持galera cluster的分支版本 MariaDB-Galera-server-5.5.46 …

    Linux干貨 2017-03-31
  • 圖文演示Netmeeting的三大功能

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/153578     可能很多朋友對Netmeeting有一定認識,但我想真正用過的朋友應該不多,因為類似的軟件太多太多了,所以Netmeet…

    Linux干貨 2015-03-25
  • 11.網絡解析和網絡加密

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 加密過程 1.使用單向加密算法,提取A的文件的特征碼。 2.使用A的私鑰對提取出來的特征碼進行加密,把加密后的特征碼附加在A的文件的后面。 3.使用對稱加密對剛剛的A的文件和加密后的特征碼進行加密,生成對稱加密密鑰 4.使用B的公鑰對第3步驟的對稱加密的密鑰進行加密,加密后附加在文件的后面。 解密過程 1.使用…

    2017-09-20
  • 第8天磁盤管理練習—增加SWAP分區

          SWAP交換空間,指在物理內存不夠用時,充當虛擬內存使用。在實際操作中,使用1-2G的一個分區并指定分區類型為SWAP,掛載至SWAP來使用。 一、新增分區 fdisk /dev/sda n     #新增加分區 t   &nb…

    Linux干貨 2016-07-04
  • sed簡介及常見用法

    sed是一個文本流處理器,配合正則表達式用可以實現很多文本處理操作。 和grep一樣,sed是一行一行的處理的。sed處理文本時,首先會將源文件復制一份到內存中,然后將文本一行一行拿到模式空間內進行操作,最后輸出到標準輸出,即屏幕上。 在模式空間中,每一行都會根據用戶給的條件進行匹配,匹配到了進行編輯后輸出,沒有匹配到,直接輸出到標準輸出。sed除了模式空間…

    2018-01-04
  • 馬哥教育網絡班22期第五周課程練習1

    1、cat /etc/passwd  | egrep "^root|^fedora|^user1"| cut -d":" -f1,7  2、egrep -o  "[^[:space:]]+\(\)" /etc/rc.d/init.d/functions   3…

    Linux干貨 2016-09-15
欧美性久久久久