一、JAVA访问memcache之Xmemcached
Xmemcached是采用nio连接,并发效率会高,大都采用该客户端。
1、引入Xmemcached
<dependency>
<groupId>com.googlecode.xmemcached</groupId>
<artifactId>xmemcached</artifactId>
<version>2.0.0</version>
</dependency>
2、配置客户端(结合Spring,factorybean是xmemecached内部提供的)
<bean name="memcachedClient" >
<!-- nio connection pool size -->
<property name="connectionPoolSize" value="2" />
<!-- Use binary protocol,default is TextCommandFactory -->
<property name="commandFactory">
<bean />
</property>
<!-- Distributed strategy -->
<property name="sessionLocator">
<bean />
</property>
<!-- Serializing transcoder -->
<property name="transcoder">
<bean />
</property>
<property name="servers"
value="192.168.22.165:10001 192.168.22.165:10002" />
<!-- server's weights -->
<property name="weights">
<list>
<value>1</value>
<value>1</value>
</list>
</property>
</bean>
可以配置 nio连接数:connectionPoolSize 传输是文本还是二进制形式:commandFactory 不同的hash散列算法:sessionLocator 序列化方式:transcoder 多个服务器负载均衡:servers 服务器的比重:weights
bean工厂返回的是一个MemcachedClient client
3、使用客户端
client.set(“key1”, 12, “value”) //超时时间是秒 你也可以使用异步的方式 client.setWithNoReply(“key1”, 12, “value”);
其它操作,你参考memcache官方说明,每一个操作,都对应一个同名方法。
二、JAVA访问redis之Jedis
Jedis是redis官方第一位推荐的java客户端。
1、引入客户端
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.4.2</version>
</dependency>
2、单连接使用jedis 官方示例:
Jedis jedis = new Jedis("localhost");
jedis.set("foo", "bar");
jedis.auth(password);
jedis.select(database);
String value = jedis.get("foo");
3、使用连接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(32);
poolConfig.setMaxIdle(32);
poolConfig.setTestOnBorrow(true);
poolConfig.setMaxWaitMillis(6000);
JedisPool jedisPool =
new JedisPool(poolConfig, host, port, timeout, password, database);
jedis的连接池是直接实现的commons-pool的 org.apache.commons.pool2.impl.GenericObjectPool 建立连接池之后,如何使用。 参考:JAVA的那些池子