zoukankan      html  css  js  c++  java
  • spring中整合memcached,以及创建memcache的put和get方法

    spring中整合memcached,以及创建memcache的put和get方法:

    1:在项目中导入memcache相关的jar包

    2:memcache在spring.xml的配置:

    代码:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xsi:schemaLocation="http://www.springframework.org/schema/beans
     5 http://www.springframework.org/schema/beans/spring-beans.xsd">
     6     <!-- XMemcachedClientFactoryBean工厂配置-->
     7     <bean id="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
     8         <property name="servers" value="${memcache.servers}"/>
     9         <property name="weights" value="${memcache.servers.weight}"/>
    10         <property name="sessionLocator">
    11             <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"/>
    12         </property>
    13         <property name="transcoder">
    14             <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder"/>
    15         </property>
    16         <property name="bufferAllocator">
    17             <bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"/>
    18         </property>
    19     </bean>
    20     <!--自己封装的api类-->
    21     <bean class="com.floor.shop.map.MemcachedAccess">
    22         <property name="memcachedClient" ref="memcachedClient"/>
    23     </bean>
    24 </beans>
    View Code

    3:memcache在db.properties中的配置:

    4:在spring的主配置文件中引入memcache的相关配置:

    5:自己封装好的memcache方法(get(),   put(),  flushAll() )

     1 package com.floor.shop.map;
     2 
     3 import net.rubyeye.xmemcached.MemcachedClient;
     4 import net.rubyeye.xmemcached.exception.MemcachedException;
     5 
     6 import java.util.concurrent.TimeoutException;
     7 
     8 public class MemcachedAccess {
     9     private MemcachedClient memcachedClient;
    10     /*
    11      * 将memcachedClient交给spring管理
    12      * (就需提供下面的get和set方法)
    13      */
    14     public MemcachedClient getMemcachedClient() {
    15         return memcachedClient;
    16     }
    17 
    18     public void setMemcachedClient(MemcachedClient memcachedClient) {
    19         this.memcachedClient = memcachedClient;
    20     }
    21 
    22     /*
    23      *   memcache基于HashMap所以通过key,value的形式放值和取值。
    24      *   memcachedClient提供了add方法进行放值,add方法需要传递三个参数String var1, int var2, Object var3
    25      *   分别表示:var1:key;  var2:缓存的时间; var3:key对应的值
    26      *   对外提供put方法往memcache里面放值:
    27      */
    28     public boolean put(String key, Integer time, String value) {
    29         try {
    30             boolean add = memcachedClient.add(key, time, value);
    31             return add;
    32         } catch (TimeoutException e) {
    33             e.printStackTrace();
    34         } catch (InterruptedException e) {
    35             e.printStackTrace();
    36         } catch (MemcachedException e) {
    37             e.printStackTrace();
    38         }
    39         return false;
    40     }
    41 
    42     /*
    43      *如果把时间写成死的数据:1天,就不需要传时间进来
    44      * memcache的缓存时间是以秒为单位,默认缓存好像是一个月。
    45      */
    46     public boolean put(String key , String value) {
    47         try {
    48             boolean add = memcachedClient.add(key, 1*24*60, value);
    49             return add;
    50         } catch (TimeoutException e) {
    51             e.printStackTrace();
    52         } catch (InterruptedException e) {
    53             e.printStackTrace();
    54         } catch (MemcachedException e) {
    55             e.printStackTrace();
    56         }
    57         return false;
    58     }
    59 
    60     /*
    61      * 对外提供取值的get方法
    62      */
    63     public String get(String key){
    64         try {
    65             String value = (String)memcachedClient.get(key);
    66             return value;
    67         } catch (TimeoutException e) {
    68             e.printStackTrace();
    69         } catch (InterruptedException e) {
    70             e.printStackTrace();
    71         } catch (MemcachedException e) {
    72             e.printStackTrace();
    73         }
    74         return null;
    75     }
    76 
    77     //对外提供清除所有缓存的方法:
    78     public void flushAll(){
    79         try {
    80             memcachedClient.flushAll();
    81         } catch (TimeoutException e) {
    82             e.printStackTrace();
    83         } catch (InterruptedException e) {
    84             e.printStackTrace();
    85         } catch (MemcachedException e) {
    86             e.printStackTrace();
    87         }
    88     }
    89 
    90 }
    View Code
  • 相关阅读:
    学英语+运动
    污染的城市
    初识 Microsoft Word
    拿到我人生中的第一张信用卡
    Advanced SharePoint Services Solutions
    DBCC DBREINDEX重建索引提高SQL Server性能【转载】
    Web cast: SharePoint Portal Server Web Part开发 [Resource]
    What's new on site Web Part for SPS [Free]
    Building Web Parts for SPS读书笔记(1)
    SharePoint Products and Technologies 2003 Software Development Kit (SDK)
  • 原文地址:https://www.cnblogs.com/dw3306/p/9341956.html
Copyright © 2011-2022 走看看