日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用

發(fā)布時間:2024/9/27 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


1 修改pom.xml,添加依賴文件:

<dependency>

??? <groupId>com.whalin</groupId>

??? <artifactId>Memcached-Java-Client</artifactId>

?? ?<version>3.0.2</version>

</dependency>

2 添加memcached-context.xml,注意要在web.xml中進(jìn)行配置

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/mvc"

??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"

??? xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"

??? xmlns:task="http://www.springframework.org/schema/task" xmlns:context="http://www.springframework.org/schema/context"

??? xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd

?????? http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

?????? http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

?????? http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd

?????? http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

???

??? <!—注意下面的:memcache在使用的時候會用到-->

??? <beans:bean id="memcache" class="com.whalin.MemCached.SockIOPool"

?????? factory-method="getInstance" init-method="initialize" destroy-method="shutDown">

?????? <beans:constructor-arg>

?????????? <beans:value>memcache</beans:value>

?????? </beans:constructor-arg>

?????? <beans:property name="servers">

?????????? <beans:list>

???????????????? <!--服務(wù)器地址-->

????????????? <beans:value>172.16.24.27:11211</beans:value>

?????????? </beans:list>

?????? </beans:property>

???????? <!--初始化時對每個服務(wù)器建立的連接數(shù)目-->

?????? <beans:property name="initConn">

?????????? <beans:value>20</beans:value>

?????? </beans:property>

???????? <!--每個服務(wù)器建立最小的連接數(shù)-->

?????? <beans:property name="minConn">

?????????? <beans:value>10</beans:value>

?????? </beans:property>

???????? <!--每個服務(wù)器建立最大的連接數(shù)-->

?????? <beans:property name="maxConn">

?????????? <beans:value>50</beans:value>

?????? </beans:property>

???????? <!--自查線程周期進(jìn)行工作,其每次休眠時間-->

?????? <beans:property name="maintSleep">

?????????? <beans:value>1000</beans:value>

?????? </beans:property>

???????? <!--Socket的參數(shù),如果是true在寫數(shù)據(jù)時不緩沖,立即發(fā)送出去-->

?????? <beans:property name="nagle">

?????????? <beans:value>false</beans:value>

?????? </beans:property>

???????? <!--Socket阻塞讀取數(shù)據(jù)的超時時間-->

?????? <beans:property name="socketTO">

?????????? <beans:value>1000</beans:value>

?????? </beans:property>


????????

<!-- 當(dāng)memcached的連接路徑出現(xiàn)問題的時候,代碼連接的時候時間超時設(shè)置 -->


?????? <beans:property name="socketConnectTO">


?????????? <beans:value>500</beans:value>


?????? </beans:property>



??? </beans:bean>

</beans:beans>

3 web.xml中配置:

4 編寫MemcachedUtils,代碼如下:

package com.kuman.cartoon.utils;?

?

import java.util.Date;

?

import org.apache.log4j.Logger;

?

import com.whalin.MemCached.MemCachedClient;

?

?

/**

?* @ClassName: MemcachedUtils

?* @Description: Memcached工具類

?* @author

?* @date 2015-8-6

?*?

?*/

public class MemcachedUtils {

??? private static final Logger logger = Logger.getLogger(MemcachedUtils.class);?

??? private static MemCachedClient cachedClient;

??? static {?

??????? if (cachedClient == null)

??????????? //括號中的名稱要和配置文件memcached-context.xml中的名稱一致

??????????? cachedClient = new MemCachedClient("memcache");

??? }?

?

??? private MemcachedUtils() {}?

?

??? /**

???? * 向緩存添加新的鍵值對。如果鍵已經(jīng)存在,則之前的值將被替換。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

???? * @return

???? */?

??? public static boolean set(String key, Object value) {?

??????? return setExp(key, value, null);?

??? }?

?

??? /**

???? * 向緩存添加新的鍵值對。如果鍵已經(jīng)存在,則之前的值將被替換。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

??? ?* @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? public static boolean set(String key, Object value, Date expire) {?

??????? return setExp(key, value, expire);?

??? }?

?

??? /**

???? * 向緩存添加新的鍵值對。如果鍵已經(jīng)存在,則之前的值將被替換。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

???? * @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? private static boolean setExp(String key, Object value, Date expire) {?

??????? boolean flag = false;?

??????? try {?

??????????? flag = cachedClient.set(key, value, expire);?

??????? } catch (Exception e) {?

??????????? // 記錄Memcached日志?

?????? ????????? logger.error("Memcached set方法報錯,key值:" + key + "\r\n");?

??????? }?

??????? return flag;?

??? }?

?

??? /**

???? * 僅當(dāng)緩存中不存在鍵時,add 命令才會向緩存中添加一個鍵值對。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

???? * @return

???? */?

??? public static boolean add(String key, Object value) {?

??????? return addExp(key, value, null);?

??? }?

?

??? /**

???? * 僅當(dāng)緩存中不存在鍵時,add 命令才會向緩存中添加一個鍵值對。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

???? * @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? public static boolean add(String key, Object value, Date expire) {?

??????? return addExp(key, value, expire);?

??? }

?

??? /**

?? ??* 僅當(dāng)緩存中不存在鍵時,add 命令才會向緩存中添加一個鍵值對。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

???? * @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? private static boolean addExp(String key, Object value, Date expire) {?

??????? boolean flag = false;?

??????? try {?

??????????? flag = cachedClient.add(key, value, expire);?

??????? } catch (Exception e) {?

??????????? // 記錄Memcached日志?

??????????? logger.error("Memcached add方法報錯,key值:" + key + "\r\n");?

??????? }?

??????? return flag;?

??? }?

?

??? /**

???? * 僅當(dāng)鍵已經(jīng)存在時,replace 命令才會替換緩存中的鍵。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

? ???* @return

???? */?

??? public static boolean replace(String key, Object value) {?

??????? return replaceExp(key, value, null);?

??? }?

?

??? /**

???? * 僅當(dāng)鍵已經(jīng)存在時,replace 命令才會替換緩存中的鍵。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

???? * @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? public static boolean replace(String key, Object value, Date expire) {?

??????? return replaceExp(key, value, expire);?

??? }?

?

??? /**

???? * 僅當(dāng)鍵已經(jīng)存在時,replace 命令才會替換緩存中的鍵。

???? *?

???? * @param key

???? *???????????

???? * @param value

???? *???????????

???? * @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? private static boolean replaceExp(String key, Object value, Date expire) {?

??????? boolean flag = false;?

??????? try {?

??????????? flag = cachedClient.replace(key, value, expire);?

??????? } catch (Exception e) {?

??????????? logger.error("Memcached replace方法報錯,key值:" + key + "\r\n");?

??????? }?

??????? return flag;?

??? }?

?

??? /**

???? * get 命令用于檢索與之前添加的鍵值對相關(guān)的值。

???? *?

???? * @param key

???? *???????????

???? * @return

???? */?

??? public static Object get(String key) {?

??????? Object obj = null;?

??????? try {?

??????????? obj = cachedClient.get(key);?

??????? } catch (Exception e) {?

??????????? logger.error("Memcached get方法報錯,key值:" + key + "\r\n");?

??????? }?

??????? return obj;?

??? }?

?

??? /**

???? * 刪除 memcached 中的任何現(xiàn)有值。

???? *?

???? * @param key

???? *???????????

???? * @return

???? */?

??? public static boolean delete(String key) {?

??????? return deleteExp(key, null);?

??? }?

?

??? /**

???? * 刪除 memcached 中的任何現(xiàn)有值。

???? *?

???? * @param key

???? *???????????

???? * @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? public static boolean delete(String key, Date expire) {?

??????? return deleteExp(key, expire);?

??? }?

?

??? /**

???? * 刪除 memcached 中的任何現(xiàn)有值。

???? *?

???? * @param key

???? *???????????

???? * @param expire

???? *??????????? 過期時間 New Date(1000*10):十秒后過期

???? * @return

???? */?

??? private static boolean deleteExp(String key, Date expire) {?

??????? boolean flag = false;?

??????? try {?

??????????? flag = cachedClient.delete(key, expire);?

??????? } catch (Exception e) {?

??????????? logger.error("Memcached delete方法報錯,key值:" + key + "\r\n");

??????? }?

??????? return flag;?

??? }?

?

??? /**

???? * 清理緩存中的所有鍵/值對

???? *?

???? * @return

???? */?

??? public static boolean flashAll() {?

??????? boolean flag = false;?

??????? try {?

??????????? flag = cachedClient.flushAll();?

??????? } catch (Exception e) {?

??????????? logger.error("Memcached flashAll方法報錯\r\n");?

??????? }?

??????? return flag;?

??? }?

?

??? /*@Test

??? public void testMemcachedSpring() {?

??????? MemcachedUtils.set("aa", "bb", new Date(1000 * 60));?

??????? Object obj = MemcachedUtils.get("aa");?

??????? System.out.println("***************************");?

??????? System.out.println(obj.toString());?

??? }*/

????????

}

5 SpringMVC中調(diào)用的方式:

@RequestMapping(value = "/toIndex")

???????? public String toIndex(Model model) {

???????????????? //方法一,這種不建議使用

???????????????? //MemCachedClient memCachedClient = new MemCachedClient("memcache");

???????? ???? //memCachedClient.set("name", "simple");

???????? ???? //System.out.println(memCachedClient.get("name"));

???????? ???

??????????????? //方法二,建議這種

???????? ??? MemcachedUtils.set("name", "simple");

???????? ??? String name = (String)MemcachedUtils.get("name");

???????? ??? System.out.println(name);

??????????????????

???????? ??? return "/admin/index";

???????? }

?

 

總結(jié)

以上是生活随笔為你收集整理的Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产小视频在线播放 | 日本成人动漫在线观看 | 国产情侣一区二区三区 | 亚洲精品国产精品国自产观看 | 国产女人高潮视频 | 午夜激情综合 | 国产欧美一区二区三区白浆喷水 | 亚洲手机av | 色亚洲影院 | 碰碰久久| 一曲二曲三曲在线观看中文字幕动漫 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 成人久久精品人妻一区二区三区 | www国产| 亚洲成人视屏 | 日韩免费电影一区 | 高潮毛片无遮挡高清免费 | 四虎一区二区 | 诱人的乳峰奶水hd | 男女在线观看视频 | 奇米影视在线播放 | 国产乱一区二区三区 | 青青视频二区 | 中文字幕在线视频免费观看 | 偷拍一区二区三区 | 国产又黄又粗又爽 | 精品欧美久久久 | 午夜激情黄色 | 欧美激情 在线 | 亚洲av女人18毛片水真多 | 色综合久久久久综合体桃花网 | 古代黄色一级片 | 最近中文字幕在线观看 | 91国产免费视频 | 9i免费看片黄| 一级日韩毛片 | 色射色 | 亚洲热视频 | 国产性猛交96 | 蜜桃视频在线观看一区二区 | 无罩大乳的熟妇正在播放 | 国产内射合集颜射 | 亚洲成人自拍网 | 欧美日韩极品 | 中文字幕99 | 无码精品人妻一二三区红粉影视 | 91日批| 欧美xxxx黑人又粗又长密月 | 日本在线播放 | 亚洲精品国产精品国自产在线 | 黑人vs亚洲人在线播放 | 亚洲国产精品毛片av不卡在线 | 国产高潮久久 | 夜夜免费视频 | 五月婷婷丁香 | 国产精品免费一区二区 | 精品视频专区 | 玖玖精品 | 日韩精品一区二区三区中文在线 | 日本韩国在线观看 | 亚洲成人av免费观看 | 国产在线欧美日韩 | 国产主播一区二区三区 | 久久精品视频6 | 爱av在线 | 99热精品在线播放 | 国模精品一区二区三区 | 精品国产一区二区在线观看 | 欧美一级淫片007 | 亚洲成人黄色影院 | 亚洲在线色 | 国产免费成人 | 三级免费看 | 台湾综合色 | 中国国产毛片 | 精品999视频 | 99re超碰| 亚洲69| 超碰公开在线观看 | 爱爱爱免费视频 | 日本少妇中文字幕 | 亚洲综合色吧 | 欧美第一页浮力影院 | 成人看片网站 | 日本不卡不卡 | 欧美日韩一区在线观看 | 国产一区二区内射 | 男人天堂tv| 天天干干干干干 | 日韩中文字幕在线 | 欧美一区二区三区大屁股撅起来 | 欧美成人激情在线 | 国产丝袜在线播放 | 牛牛视频在线 | 欧美亚洲色综久久精品国产 | 亚洲国产欧美视频 | 国产在线观看 | 性――交――性――乱睡觉 | 四虎网址在线 |