英菲克i9八核刷机怎样安装app

学习笔记(58)
nosql(1)
Memcached Java Client API详解
针对提供的java_memcached-release_2.0.1版本进行阅读分析,Memcached
Java客户端lib库主要提供的调用类是SockIOPool和MemCachedClient?,关键类及方法整理说明如下。
SockIOPool
这个类用来创建管理客户端和服务器通讯连接池,客户端主要的工作包括数据通讯、服务器定位、hash码生成等都是由这个类完成的。
public static SockIOPool getInstance()
获得连接池的单态方法。这个方法有一个重载方法getInstance( String poolName ),每个poolName只构造一个SockIOPool实例。缺省构造的poolName是default。如果在客户端配置多个memcached服务,一定要显式声明poolName。
public void setServers( String[] servers )
设置连接池可用的cache服务器列表,server的构成形式是IP:PORT(如:127.0.0.1:11211)
public void setWeights( Integer[] weights )
设置连接池可用cache服务器的权重,和server数组的位置一一对应其实现方法是通过根据每个权重在连接池的bucket中放置同样数目的server(如下代码所示),因此所有权重的最大公约数应该是1,不然会引起bucket资源的浪费。&
for ( int i = 0; i & servers. i+/+ ) { if ( this.weights /!= null && this.weights.length & i ) { for ( int k = 0; k & this.weights[i].intValue(); k+/+ ) { this.buckets.add( servers[i] ); if ( log.isDebugEnabled() ) log.debug( &++++ added & + servers[i] + & to server bucket& ); } }
public void setInitConn( int initConn )
设置开始时每个cache服务器的可用连接数
public void setMinConn( int minConn )
设置每个服务器最少可用连接数
public void setMaxConn( int maxConn )
设置每个服务器最大可用连接数
public void setMaxIdle( long maxIdle )
设置可用连接池的最长等待时间
public void setMaintSleep( long maintSleep )
设置连接池维护线程的睡眠时间设置为0,维护线程不启动维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数以控制连接创建和关闭。
public void setNagle( boolean nagle )
设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true)
ublic void setSocketTO( int socketTO )
设置socket的读取等待超时值
public void setSocketConnectTO( int socketConnectTO )
设置socket的连接等待超时值
public void setAliveCheck( boolean aliveCheck )
设置连接心跳监测开关。设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HA要求比较高的场合设为TRUE,默认状态是false。
public void setFailback( boolean failback )
设置连接失败恢复开关设置为TRUE,当宕机的服务器启动或中断的网络连接后,这个socket连接还可继续使用,否则将不再使用,默认状态是true,建议保持默认。
public void setFailover( boolean failover )
设置容错开关设置为TRUE,当当前socket不可用时,程序会自动查找可用连接并返回,否则返回NULL,默认状态是true,建议保持默认。
public void setHashingAlg( int alg )
设置hash算法
alg=0 使用String.hashCode()获得hash code,该方法依赖JDK,可能和其他客户端不兼容,建议不使用alg=1 使用original 兼容hash算法,兼容其他客户端alg=2 使用CRC32兼容hash算法,兼容其他客户端,性能优于original算法alg=3 使用MD5 hash算法
采用前三种hash算法的时候,查找cache服务器使用余数方法。采用最后一种hash算法查找cache服务时使用consistent方法。
public void initialize()
设置完pool参数后最后调用该方法,启动pool。
MemCachedClient?
public void setCompressEnable( boolean compressEnable )
设定是否压缩放入cache中的数据默认值是ture如果设定该值为true,需要设定CompressThreshold?
public void setCompressThreshold( long compressThreshold )
设定需要压缩的cache数据的阈值默认值是30k
public void setPrimitiveAsString( boolean primitiveAsString )
设置cache数据的原始类型是String默认值是false只有在确定cache的数据类型是string的情况下才设为true,这样可以加快处理速度。
public void setDefaultEncoding( String defaultEncoding )
当primitiveAsString为true时使用的编码转化格式默认值是utf-8如果确认主要写入数据是中文等非ASCII编码字符,建议采用GBK等更短的编码格式
cache数据写入操作方法
将数据保存到cache服务器,如果保存成功则返回true如果cache服务器存在同样的key,则替换之set有5个重载方法,key和value是必须的参数,还有过期时间,hash码,value是否字符串三个可选参数
将数据添加到cache服务器,如果保存成功则返回true如果cache服务器存在同样key,则返回falseadd有4个重载方法,key和value是必须的参数,还有过期时间,hash码两个可选参数
replace方法
将数据替换cache服务器中相同的key,如果保存成功则返回true如果cache服务器不存在同样key,则返回falsereplace有4个重载方法,key和value是必须的参数,还有过期时间,hash码两个可选参数
建议分析key的规律,如果呈现某种规律有序,则自己构造hash码,提高存储效率&
cache数据读取操作方法
使用get方法从cache服务器获取一个数据
如果写入时是压缩的或序列化的,则get的返回会自动解压缩及反序列化get方法有3个重载方法,key是必须的参数,hash码和value是否字符串是可选参数
使用getMulti方法从cache服务器获取一组数据
get方法的数组实现,输入参数keys是一个key数组返回是一个map&
通过cache使用计数器
使用storeCounter方法初始化一个计数器使用incr方法对计数器增量操作使用decr对计数器减量操作&
Memcached Client API 优化(草)
实现memcached的遍历操作
有些应用情况下,需要遍历memcached服务器中所有被cache的数据,目前memcached client API不支持遍历操作,需要进行扩展。
实现get时刷新数据过期时间(应用于session,可能需要修改服务器端程序)
当memcached被用作session服务器的时候,需要支持session的access方法,根据最近访问时间刷新过期时间,目前memcached也不支持该操作,需要进行扩展。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:365267次
积分:3438
积分:3438
排名:第9004名
原创:79篇
转载:14篇
译文:16篇
评论:32条
(1)(4)(8)(1)(1)(3)(2)(1)(4)(9)(6)(4)(1)(1)(10)(7)(10)(1)(1)(1)(1)(1)(1)(1)(1)(2)(1)(2)(1)(1)(6)(3)(3)(5)(1)(3)(2)Memcached Java Client性能对比 -
- ITeye技术网站
博客分类:
对比spymemcached和Memcached-Java-Client性能
在 上主要有两个Java版本的Memcached客户端,原文如下:
spymemcached
An improved Java API maintained by Dustin Sallings.
Aggressively optimised, ability to run async, supports binary protocol, etc. See site for details.
Java memcached client
A Java API is maintained by Greg Whalin .
在个人电脑上写了一段程序对比两个客户端的效率(单一memcached服务器),
用100个线程,分别插入后查询1000笔数据,spymemcached耗时约8s
对spymemcached测试如下:
import java.io.IOE
import net.spy.memcached.AddrU
import net.spy.memcached.MemcachedC
public class TestSpymemcached extends Thread{
* @param args
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
System.out.println("begin:"+System.currentTimeMillis());
for(int i=0 ; i&100;i++){
TestJavaClient test = new TestJavaClient(i);
test.start();
System.out.println("end:"+System.currentTimeMillis());
TestJavaClient(int i){
public void run(){
System.out.println(count+"start:"+System.currentTimeMillis());
MemcachedClient c= MemCachedManager.getInstance();
for(int i=0 ; i&1000;i++){
// Store a value (async) for one hour
c.set(count+"000"+i, 3600, "Hello World "+count+"000"+i+"!");
// Retrieve a value (synchronously).
Object myObject=c.get("liusong"+count);
System.out.println(count+"end:"+System.currentTimeMillis());
class MemCachedManager{
private static MemcachedC
public static synchronized MemcachedClient getInstance(){
if(c==null){
c=new MemcachedClient(
AddrUtil.getAddresses("10.148.11.112:11211"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Java memcached client同样用100个线程,分别插入后查询1000笔数据,耗时约36s
Java memcached client代码如下:
public class TestJavaClient extends Thread{
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
System.out.println("begin:"+System.currentTimeMillis());
for(int i=0 ; i&100;i++){
TestDangaClient test = new TestDangaClient(i);
test.start();
System.out.println("end:"+System.currentTimeMillis());
TestDangaClient(int i){
public void run(){
System.out.println(count+"start:"+System.currentTimeMillis());
MemCachedManage cache = MemCachedManage.getInstance();
for(int i=0 ; i&1000;i++){
// Store a value (async) for one hour
cache.add(count+"000"+i, "Hello World "+count+"000"+i+"!");
// Retrieve a value (synchronously).
Object myObject=cache.get("liusong"+count);
System.out.println(count+"end:"+System.currentTimeMillis());
import java.util.D
import com.meetup.memcached.MemcachedC
import com.meetup.memcached.SockIOP
public class MemCachedManage {
private static MemcachedClient mcc = new MemcachedClient();
private static MemCachedManage memCachedManager = new MemCachedManage();
String[] servers = { "10.148.71.215:11211" };
Integer[] weights = { 3 };
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setWeights(weights);
pool.setInitConn(100);
pool.setMinConn(100);
pool.setMaxConn(250);
pool.setMaxIdle(1000 * 60 * 60 * 6);
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
pool.initialize();
mcc.setCompressEnable(true);
mcc.setCompressThreshold(64 * 1024);
protected MemCachedManage() {
public static MemCachedManage getInstance() {
return memCachedM
public boolean add(String key, Object value) {
return mcc.add(key, value);
public boolean add(String key, Object value, Date expiry) {
return mcc.add(key, value, expiry);
public boolean replace(String key, Object value) {
return mcc.replace(key, value);
public boolean replace(String key, Object value, Date expiry) {
return mcc.replace(key, value, expiry);
public Object get(String key) {
return mcc.get(key);
public static void main(String[] args) {
MemCachedManage cache = MemCachedManage.getInstance();
cache.add("hello", 234);
System.out.print("get value : " + cache.get("hello"));
结论,spymemcached更有效率。
浏览: 39969 次
来自: 深圳
你这文章有点…………。proxy模式的初始化那是你这样玩的?
redis 没有实现 类似于mongo 的shard功能,只有 ...
真正的不同是使用场景,装饰器: 已经明确知道有了一个具体的 东 ...memcache(4)
Memcached Java Client API详解
针对提供的java_memcached-release_2.0.1版本进行阅读分析,Memcached
Java客户端lib库主要提供的调用类是SockIOPool和MemCachedClient?,关键类及方法整理说明如下。
SockIOPool
这个类用来创建管理客户端和服务器通讯连接池,客户端主要的工作包括数据通讯、服务器定位、hash码生成等都是由这个类完成的。
public static SockIOPool getInstance()&
获得连接池的单态方法。这个方法有一个重载方法getInstance( String poolName ),每个poolName只构造一个SockIOPool实例。缺省构造的poolName是default。&如果在客户端配置多个memcached服务,一定要显式声明poolName。&
public void setServers( String[] servers )&
设置连接池可用的cache服务器列表,server的构成形式是IP:PORT(如:127.0.0.1:11211)&
public void setWeights( Integer[] weights )&
设置连接池可用cache服务器的权重,和server数组的位置一一对应&其实现方法是通过根据每个权重在连接池的bucket中放置同样数目的server(如下代码所示),因此所有权重的最大公约数应该是1,不然会引起bucket资源的浪费。&
for ( int i = 0; i & servers. i+/+ ) { if ( this.weights /!= null && this.weights.length & i ) { for ( int k = 0; k & this.weights[i].intValue(); k+/+ ) { this.buckets.add( servers[i] ); if ( log.isDebugEnabled() ) log.debug( &++++ added & + servers[i] + & to server bucket& ); } }
public void setInitConn( int initConn )&
设置开始时每个cache服务器的可用连接数&
public void setMinConn( int minConn )&
设置每个服务器最少可用连接数&
public void setMaxConn( int maxConn )&
设置每个服务器最大可用连接数&
public void setMaxIdle( long maxIdle )&
设置可用连接池的最长等待时间&
public void setMaintSleep( long maintSleep )&
设置连接池维护线程的睡眠时间&设置为0,维护线程不启动&维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数以控制连接创建和关闭。&
public void setNagle( boolean nagle )&
设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true)&
ublic void setSocketTO( int socketTO )&
设置socket的读取等待超时值&
public void setSocketConnectTO( int socketConnectTO )&
设置socket的连接等待超时值&
public void setAliveCheck( boolean aliveCheck )&
设置连接心跳监测开关。&设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HA要求比较高的场合设为TRUE,默认状态是false。&
public void setFailback( boolean failback )&
设置连接失败恢复开关&设置为TRUE,当宕机的服务器启动或中断的网络连接后,这个socket连接还可继续使用,否则将不再使用,默认状态是true,建议保持默认。&
public void setFailover( boolean failover )&
设置容错开关&设置为TRUE,当当前socket不可用时,程序会自动查找可用连接并返回,否则返回NULL,默认状态是true,建议保持默认。&
public void setHashingAlg( int alg )&
设置hash算法&
alg=0 使用String.hashCode()获得hash code,该方法依赖JDK,可能和其他客户端不兼容,建议不使用&alg=1 使用original 兼容hash算法,兼容其他客户端&alg=2 使用CRC32兼容hash算法,兼容其他客户端,性能优于original算法&alg=3 使用MD5 hash算法&
采用前三种hash算法的时候,查找cache服务器使用余数方法。采用最后一种hash算法查找cache服务时使用consistent方法。&
public void initialize()&
设置完pool参数后最后调用该方法,启动pool。&
MemCachedClient?
public void setCompressEnable( boolean compressEnable )&
设定是否压缩放入cache中的数据&默认值是ture&如果设定该值为true,需要设定CompressThreshold?&
public void setCompressThreshold( long compressThreshold )&
设定需要压缩的cache数据的阈值&默认值是30k&
public void setPrimitiveAsString( boolean primitiveAsString )&
设置cache数据的原始类型是String&默认值是false&只有在确定cache的数据类型是string的情况下才设为true,这样可以加快处理速度。&
public void setDefaultEncoding( String defaultEncoding )&
当primitiveAsString为true时使用的编码转化格式&默认值是utf-8&如果确认主要写入数据是中文等非ASCII编码字符,建议采用GBK等更短的编码格式&
cache数据写入操作方法&
将数据保存到cache服务器,如果保存成功则返回true&如果cache服务器存在同样的key,则替换之&set有5个重载方法,key和value是必须的参数,还有过期时间,hash码,value是否字符串三个可选参数&
将数据添加到cache服务器,如果保存成功则返回true&如果cache服务器存在同样key,则返回false&add有4个重载方法,key和value是必须的参数,还有过期时间,hash码两个可选参数&
replace方法&
将数据替换cache服务器中相同的key,如果保存成功则返回true&如果cache服务器不存在同样key,则返回false&replace有4个重载方法,key和value是必须的参数,还有过期时间,hash码两个可选参数&
建议分析key的规律,如果呈现某种规律有序,则自己构造hash码,提高存储效率&
cache数据读取操作方法&
使用get方法从cache服务器获取一个数据&
如果写入时是压缩的或序列化的,则get的返回会自动解压缩及反序列化&get方法有3个重载方法,key是必须的参数,hash码和value是否字符串是可选参数&
使用getMulti方法从cache服务器获取一组数据&
get方法的数组实现,输入参数keys是一个key数组&返回是一个map&
通过cache使用计数器&
使用storeCounter方法初始化一个计数器&使用incr方法对计数器增量操作&使用decr对计数器减量操作&
Memcached Client API 优化(草)
实现memcached的遍历操作
有些应用情况下,需要遍历memcached服务器中所有被cache的数据,目前memcached client API不支持遍历操作,需要进行扩展。
实现get时刷新数据过期时间(应用于session,可能需要修改服务器端程序)
当memcached被用作session服务器的时候,需要支持session的access方法,根据最近访问时间刷新过期时间,目前memcached也不支持该操作,需要进行扩展。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:250957次
积分:11722
积分:11722
排名:第1167名
原创:966篇
评论:22条
(6)(286)(362)(164)(10)(6)(128)(26)Memcached学习笔记 — 第四部分:Memcached Java 客户端-gwhalin(1)-介绍及使用 - acooly - ITeye技术网站
博客分类:
Memcached java client是官方推荐的最早的memcached java客户端。最新版本:java_memcached-release_2.6.1。
官方下载地址:/gwhalin/Memcached-Java-Client
采用阻塞式SOCKET通讯,据说目前版本进行了很多优化,性能有所提高(只看过1.5的源代码,还没来及看最新的)
提供key方式的连接池,默认连接池key为default。(老版本了)。2.6.1版本支持apache-commoms-pool作为连接池。
支持权重配置。
后期的版本提增加了cas支持和getMutl功能
官方示例代码
import com.danga.MemCached.MemCachedC
import com.danga.MemCached.SockIOP
import com.schooner.MemCached.MemcachedI
public class MemcachedForJavaExample {
// create a static client as most installs only need
// a single instance
protected static MemCachedClient mcc = new MemCachedClient();
// set up connection pool once at class load
// server list and weights
String[] servers = { "localhost:11211", "localhost:11212", "localhost:11213" };
Integer[] weights = { 3, 3, 2 };
// grab an instance of our connection pool
SockIOPool pool = SockIOPool.getInstance();
// set the servers and the weights
pool.setServers(servers);
pool.setWeights(weights);
pool.setHashingAlg(SockIOPool.CONSISTENT_HASH);
// set some basic pool settings
// 5 initial, 5 min, and 250 max conns
// and set the max idle time for a conn
// to 6 hours
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaxIdle(1000 * 60 * 60 * 6);
// set the sleep for the maint thread
// it will wake up every x seconds and
// maintain the pool size
pool.setMaintSleep(30);
// set some TCP settings
// disable nagle
// set the read timeout to 3 secs
// and don't set a connect timeout
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
// initialize the connection pool
pool.initialize();
public static void main(String[] args) {
System.out.println("SET: " + mcc.set("key1", "value1"));
System.out.println("SET: " + mcc.set("key2", "value2"));
System.out.println("SET: " + mcc.set("key3", "value3"));
System.out.println("GET: " + mcc.get("key1"));
MemcachedItem item = mcc.gets("key1");
System.out.println("GETS: value=" + item.getValue() + ",CasUnique:"+item.getCasUnique());
System.out.println("SET: " + mcc.set("key1", "value1_1"));
System.out.println("CAS: " + mcc.cas("key1", "value1_2", item.getCasUnique())); //必须FALSE
System.out.println("getMulti:" + mcc.getMulti(new String[]{"key1","key2","key3"}));
这个标题不好取,因为是我自己的想法,还需要大家多提意见,一起讨论。想叫“建议代码”或者“推荐代码”,觉得不合适,还是先叫“我的代码”吧,呵呵。
1. 在原始客户端上层,根据业务需求封装MemcachedService(或叫MemcachedClient),负责缓存功能的包装。如:你的业务只需要add,set,get,gets,cas,delete业务,那就只封装这几个功能。这样做的好处是,屏蔽了各种客户端的API差异,让你的业务系统与客户端实现解耦合,如果你以后需要换客户端实现,对你的业务系统不会照成影响。
一般不要直接采用new的方式在你的代码中显示使用memcached客户端实现,应该采用单例的方式使用memcached客户端实现,或者使用Spring的singleton方式配置。Memcached客户端实现是线程安全的。
3. memcached客户端一般都需要大量的配置,考虑扩展和配置修改,应该把参数设置设计为可配置的,可以写到propertis配置文件中或是使用Spring进行配置。
业务层封装接口
* Memcached 常用功能接口定义,用于业务层直接使用,屏蔽各种客户端实现的API差异,实现解耦客户端与业务系统的目的
* 无过期时间和flags支持,无append,prepend,replace,incr,decr等操作
* @author zhangpu
public interface MemcachedClientService {
String get(String key);
CacheItem gets(String key);
boolean add(String key, String value);
boolean set(String key, String value);
boolean cas(String key, String value, long unique);
boolean delete(String key)
boolean flushAll();
public class CacheItem {
public CacheItem() {
public CacheItem(String key, String value, long unique) {
this.key =
this.value =
this.unique =
public String getKey() {
public void setKey(String key) {
this.key =
public String getValue() {
public void setValue(String value) {
this.value =
public long getUnique() {
public void setUnique(long unique) {
this.unique =
客户端缓存服务实现
* Memcached for java客户端缓存服务实现
* @author zhangpu
public class MemcachedClientJava implements MemcachedClientService {
MemCachedClient mmc = MemcachedClientFactory.getInstance();
public boolean add(String key, String value) {
return mmc.add(key, value);
public boolean cas(String key, String value, long unique) {
return mmc.cas(key, value, unique);
public String get(String key) {
return (String) mmc.get(key);
public CacheItem gets(String key) {
MemcachedItem item = mmc.gets(key);
return new CacheItem(key, (String) item.getValue(), item.getCasUnique());
public boolean set(String key, String value) {
return mmc.set(key, value);
public boolean delete(String key) {
return mmc.delete(key);
public boolean flushAll() {
return mmc.flushAll();
获取客户端实例
* MemcachedClient 单例(JDK1.5以上)
* @author zhangpu
public class MemcachedClientFactory extends ConfigurableConstants{
private static volatile MemCachedC
init("memcached-client.properties");
//{ "localhost:11211", "localhost:11212", "localhost:11213" };
String[] servers = getProperty("memcached-servers","").split(",");
Integer[] weights =
String weightsCfg = getProperty("memcached-weights","");
if(weightsCfg != null){
String[] wcfg = weightsCfg.split(",");
weights = new Integer[wcfg.length];
for (int i = 0; i & weights. i++) {
weights[i] = Integer.valueOf(wcfg[i]);
weights = new Integer[servers.length];
for (int i = 0; i & weights. i++) {
weights[i] = 1;
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setWeights(weights);
pool.setHashingAlg(SockIOPool.CONSISTENT_HASH);
pool.setInitConn(getProperty("memcached-initConn",5));
pool.setMinConn(getProperty("memcached-minConn",5));
pool.setMaxConn(getProperty("memcached-maxConn",250));
pool.setMaxIdle(1000 * 60 * 60 * 6);
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
pool.initialize();
private MemcachedClientFactory() {
public static MemCachedClient getInstance() {
if (mmc == null) {
synchronized (MemCachedClient.class) {
if (mmc == null) {
mmc = new MemCachedClient();
* 通过 properties 文件配置设置常量基类 负责加载和读取 properties 属性文件并提供访问的静态工具方法
* @author zhangpu
public class ConfigurableConstants {
protected static Log logger = LogFactory.getLog(ConfigurableConstants.class);
protected static Properties p = new Properties();
protected static void init(String propertyFileName) {
InputStream in =
in = ConfigurableConstants.class.getClassLoader().getResourceAsStream(propertyFileName);
if (in != null)
p.load(in);
} catch (IOException e) {
logger.error("load " + propertyFileName + " into Constants error!");
} finally {
if (in != null) {
in.close();
} catch (IOException e) {
logger.error("close " + propertyFileName + " error!");
protected static String getProperty(String key, String defaultValue) {
return p.getProperty(key, defaultValue);
protected static int getProperty(String key, int defaultValue) {
return Integer.parseInt(getProperty(key, ""));
} catch (Exception e) {
return defaultV
memcached-client.properties
memcached-client.properties
memcached-servers=localhost:11211,localhost:11212,localhost:11213
memcached-weights=3,3,2
memcached-initConn=5
memcached-minConn=5
memcached-maxConn=250
后续提供性能测试,spring整合,版本差异测试,及其它客户端对比。
下载次数: 202
浏览: 439513 次
来自: 重庆
eclipse都无法启动
果然是这个问题。。。维护别人的代码,开始还以为自己改错了,结果 ...
谢谢分享!
多谢楼主分享
maven 多源文件http://www.mojohaus.o ...

我要回帖

更多关于 英菲克i9八核刷机 的文章

 

随机推荐