官網不推薦將memcached安裝到window OS中、爲了測試使用先在win中安裝。html
在本機%memcached_home%路徑下 使用以下指令:java
Memcached.ext –d install
也可使用:spring
memcached.ext -l localhost -p 11212 -m 1024 在本機的11212 端口安裝memcached 服務(能夠用內存爲 1G)
我本機已經裝過了、所以使用以下:ruby
註釋:若是你在你本機就不能telnet 經過本機的ip和端口說明你本機的telnet服務沒啓動。 若是你在本機能夠telnet經過可是你的同事不能telnet你的電腦、看看你的「防火牆」是否開啓、若是開啓關閉就好了。你也可讓memcached安裝爲你的服務、那就是後話了。 啓動memcached服務後會在window資源管理器中看以下服務進程:服務器
使用telnet localhost 11211 鏈接到memcached服務器 等待n秒吧、而後輸入stats會返回:session
上面兩張圖片中各個字段的意義: 字段值 字段值說明 pid Memcached進程ID Uptime Memcached運行時間,單位:秒 time Memcached當前的UNIX時間 version Memcached的版本號 libevent 2.0.21-stable pointer_size 32 curr_connections 當前鏈接數量 total_connections Memcached運行以來接受的鏈接總數 connection_structures Memcached分配的鏈接結構的數量 reserved_fds 20 cmd_get 查詢請求總數 cmd_set 存儲(添加/更新)請求總數 cmd_flush cmd_touch 0 get_hits 查詢成功獲取數據的總次數 get_misses 查詢成功未獲取到數據的總次數 delete_hits 查詢成功獲取數據的總次數 delete_misses 查詢成功未獲取到數據的總次數 rusage_user 該進程累計的用戶時間,單位:秒 rusage_system 該進程累計的系統時間,單位:秒 bytes Memcached當前存儲內容所佔用的字節數 curr_items Memcached當前存儲的內容數量 total_items Memcached啓動以來存儲過的內容總數 evictions reclaimed …… 具體參數意義可查看:查看memcache的statusapp
上面說了不少memcached的東西、說說客戶端程序。 java的memcached客戶端比較:memcached
memcached.properties 配置項、因爲在我本機測試僅僅用到server一、在生產環境能夠配置集羣。測試
#鏈接池大小即客戶端個數 memcached.connectionPoolSize=50 # TODO memcached.failureMode=true #server1 memcached.server1.host=192.168.2.102 memcached.server1.port=11211 memcached.server1.weight=4 #server2 memcached.server2.host=10.11.155.41 memcached.server2.port=11211 memcached.server2.weight=3 #server3 memcached.server3.host=10.10.76.31 memcached.server3.port=11211 memcached.server3.weight=2 #server4 memcached.server4.host=10.10.76.35 memcached.server4.port=11211 memcached.server4.weight=1
在Spring中的配置文件爲:applicationContext-memcached-ws.xml 配置文件內容爲:ui
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- http://code.google.com/p/xmemcached/wiki/Spring_Integration <context:property-placeholder location="memcached.properties" /> --> <bean id="memcachedClientBuilder" class="net.rubyeye.xmemcached.XMemcachedClientBuilder" p:connectionPoolSize="${memcached.connectionPoolSize}" p:failureMode="${memcached.failureMode}"> <constructor-arg> <list><bean class="java.net.InetSocketAddress"> <constructor-arg><value>${memcached.server1.host}</value> </constructor-arg> <constructor-arg><value>${memcached.server1.port}</value> </constructor-arg> </bean></list> </constructor-arg> <constructor-arg><list><value>${memcached.server1.weight}</value></list> </constructor-arg> <property name="commandFactory"> <bean class="net.rubyeye.xmemcached.command.TextCommandFactory" /> </property> <property name="sessionLocator"> <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator" /> </property> <property name="transcoder"> <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" /> </property> </bean> <bean id="memcachedClient" factory-bean="memcachedClientBuilder" factory-method="build" destroy-method="shutdown" /> <!-- memcached 管理類配置項 --> <bean id="memcachedManager" class="com.xxx.ws.cache.MemcachedManager"> <property name="memcachedClient" ref="memcachedClient"></property> </bean> </beans>