XMemcached-for-java-Memcached使用說明

XMemcached-for-java-Memcached使用說明

一、下載memcached.exe 安裝程序

官網不推薦將memcached安裝到window OS中、爲了測試使用先在win中安裝。html

二、安裝memcached

在本機%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資源管理器中看以下服務進程:服務器

輸入圖片說明

三、查看memcached服務狀態

使用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

四、使用xmemcached 管理cache

上面說了不少memcached的東西、說說客戶端程序。 java的memcached客戶端比較:memcached

  • 一、XMemcached (咱們使用的)
  • 二、SpyMemcached
  • 三、Memcached Client for Java(官方提供的java 客戶端)

五、XMemcached vs Spring 配置

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>
相關文章
相關標籤/搜索