memcache與spring集成 實例


一、前期準備

1)  下載memcached服務端memcached-1.2.6-win32-bin.zip,地址:http://code.jellycan.com/memcached/

2)  下載java版客戶端 java_memcached-release_2.6.1.zip
3)  解壓縮memcached-1.2.6-win32-bin.zip到指定目錄,例如:D:\memcached-1.2.6-win32 ,在終端(即cmd命令行界面)
 
 
D:\memcached-1.2.6-win32\memcached.exe -d install
D:\memcached\memcached.exe -d start

這樣memcache就會作爲windows系統服務在每次開機時啓動memcache服務。
-p 監聽的端口 
-l 連接的IP地址, 默認是本機 
-d start 啓動memcached服務 
-d restart 重起memcached服務 
-d stop|shutdown 關閉正在運行的memcached服務 
-d install 安裝memcached服務 
-d uninstall 卸載memcached服務 
-u 以的身份運行 (僅在以root運行的時候有效) 
-m 最大內存使用,單位MB。默認64MB 
-M 內存耗盡時返回錯誤,而不是刪除項 
-c 最大同時連接數,默認是1024 
-f 塊大小增長因子,默認是1.25 
-n 最小分配空間,key+value+flags默認是48 
-h 顯示幫助 

二、實例代碼
spring-memcache.xml  配置pool和memcache客戶端
<?xml version="1.0" encoding="UTF-8"?>

<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:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">


    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:properties/memcache.properties</value>
            </list>
        </property>
    </bean>

    <bean id="memcachedPool" class="com.danga.MemCached.SockIOPool"
        factory-method="getInstance" init-method="initialize"
        destroy-method="shutDown">

        <constructor-arg>
            <value>memCachedPool</value>
        </constructor-arg>
        
        <property name="servers">
            <list>
                <value>${memcache.server}</value>
            </list>
        </property>
        
        <property name="initConn">
            <value>${memcache.initConn}</value>
        </property>
        
        <property name="minConn">
            <value>${memcache.minConn}</value>
        </property>

        <property name="maxConn">
            <value>${memcache.maxConn}</value>
        </property>

        <property name="maintSleep">
            <value>${memcache.maintSleep}</value>
        </property>

        <property name="nagle">
            <value>${memcache.nagle}</value>
        </property>

        <property name="socketTO">
            <value>${memcache.socketTO}</value>
        </property>
    </bean>

    <bean id="memCachedClient" class="com.danga.MemCached.MemCachedClient">
        <constructor-arg>
            <value>memCachedPool</value>
        </constructor-arg>
    </bean>

</beans>

memcache.properties memcache的連接屬性 這是本機做服務器的,如果是其它機器,換ip 端口即可
memcache.server=127.0.0.1:11211
memcache.initConn=20
memcache.minConn=10
memcache.maxConn=50
memcache.maintSleep=3000
memcache.nagle=false
memcache.socketTO=3000 

TestMemcache.java測試類   用的是junit4

package com.pis.memcache;

import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.danga.MemCached.MemCachedClient;

public class TestMemcache {
    MemCachedClient memCachedClient;
    @Before
    public void beforeTest(){
        
        ApplicationContext atx = new ClassPathXmlApplicationContext("/spring/spring-memcache.xml");
        memCachedClient = (MemCachedClient)atx.getBean("memCachedClient");
    }
    
    
    @Test
    public void TestMem(){
        memCachedClient.set("name", "han");
        
        System.out.println(memCachedClient.get("name"));
    }
    
    
    
}

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