发表于: 2020-08-19 23:30:08

1 1324


今天完成的事:

熟悉Memcache-java客户端的方法使用。

引入依赖包

<!--memcache-->
<dependency>
 <groupId>com.whalin</groupId>
 <artifactId>Memcached-Java-Client</artifactId>
 <version>3.0.2</version>
</dependency>
<dependency>
 <groupId>commons-pool</groupId>
 <artifactId>commons-pool</artifactId>
 <version>1.5.6</version>
</dependency>

memcached.properties

#服务端地址
memcached.server 127.0.0.1:11211
#大概意思是为false如果连接管道失败了直接返回就不会再去找其他机器了,为true会组装一些新的key到剩下的服务器里去找。
memcached.failover true
#初始化时对每个服务器建立的连接数目
memcached.initConn 20
#每个服务器建立最小的连接数,当自查线程发现与某个服务器建立连接数目小于这个数目时会弥补剩下的连接
memcached.minConn 10
#每个服务器建立最大的连接数
memcached.maxConn 40

#连接池守护线程的睡眠时间

memcached.maintSleep 3000

#Socket的参数,如果是true在写数据时不缓冲,立即发送出去
memcached.nagle false
#Socket阻塞读取数据的超时时间
memcached.socketTO 3000
#为true会检查Socket是否已经连接
memcached.aliveChecktrue

memcached.xml

<?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"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
   <context:property-placeholder location="classpath:memcache.properties" ignore-unresolvable="true"/>

   <bean id="memcachedPool" class="com.whalin.MemCached.SockIOPool" factory-method="getInstance"
         init-method="initialize" destroy-method="shutDown">
       <constructor-arg>
           <value>memcachedPool</value>
       </constructor-arg>
       <property name="servers">
           <!--可以配置多个 server-->
           <list>
               <value>${memcached.server}</value>
           </list>
       </property>
       <property name="failover" value="${memcached.failover}"/>
       <property name="initConn" value="${memcached.initConn}"/>
       <property name="minConn" value="${memcached.minConn}"/>
       <property name="maxConn" value="${memcached.maxConn}"/>
       <property name="maintSleep" value="${memcached.maintSleep}"/>
       <property name="nagle" value="${memcached.nagle}"/>
       <property name="socketTO" value="${memcached.socketTO}"/>
       <property name="aliveCheck" value="${memcached.aliveCheck}"/>
   </bean>

   <bean id="memcachedClient" class="com.whalin.MemCached.MemCachedClient">
       <constructor-arg>
           <value>memcachedPool</value>
       </constructor-arg>
   </bean>
</beans>

在spirng的配置文件里引入memcached.xml

<import resource="classpath:memcache.xml"/>

配置好后再测试类中测试

1.set方法测试

public class TestMem {
@Resource(name "memcachedClient")
MemCachedClient memCachedClient;
   @Test
   public void test1(){
//插入方法有三种
       //1.set方法,如果key值已存在则直接覆盖重写。
      memCachedClient.set("name","ss");
      memCachedClient.set("name","aa");
      System.out.println("测试结果:"+memCachedClient.get("name"));
   }

测试结果:

2.add方法测试

//2.add方法,这种方式只会添加,如果key已存在则返回false,添加不成功
memCachedClient.add("name","ss");

System.out.println("测试结果:"memCachedClient.add("name","aa"));

测试结果:

3.replace方法测试

memCachedClient.add("name","ss");
//3把key对应的value替换
memCachedClient.replace("name","22");
System.out.println("测试结果:"+memCachedClient.get("name"));

测试结果:

 

flashAll方法的意思就是把所有缓存数据置空。

如果想要存实体类,必须要将实体类序列化。让实体类 去  implements Serializable  这个接口

如果想要存泛型集合,同理,对应的泛型也必须要序列化。

明天计划:

给项目用上memcache.

遇到的问题:

收获:

memcache-java方法的基本使用。



返回列表 返回列表
评论

    分享到