`
zybing
  • 浏览: 454101 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【memcached】initialize是不是一个问题?

阅读更多

版本:gwhalin-Memcached-Java-Client-release_2.6.1-0-gab2cc7e

 

在memcached使用中:

 

static {
	String[] serverlist = { "cache0.server.com:12345", "cache1.server.com:12345" };
	SockIOPool pool = SockIOPool.getInstance();
	pool.setServers(serverlist);
	pool.initialize();
}
 

最后需要对pool进行initialize();其实就是调用的SchoonerSockIOPool的initialize:

 

public void initialize() {
	schoonerSockIOPool.initialize();
}
 

而在SchoonerSockIOPool初始化中,

 

public void initialize() {
	initDeadLock.lock();
	try {

		// if servers is not set, or it empty, then
		// throw a runtime exception
		if (servers == null || servers.length <= 0) {
			log.error("++++ trying to initialize with no servers");
			throw new IllegalStateException("++++ trying to initialize with no servers");
		}
		// pools
		socketPool = new HashMap<String, GenericObjectPool>(servers.length);
		hostDead = new ConcurrentHashMap<String, Date>();
		hostDeadDur = new ConcurrentHashMap<String, Long>();
		// only create up to maxCreate connections at once

		// initalize our internal hashing structures
		if (this.hashingAlg == CONSISTENT_HASH)
			populateConsistentBuckets();
		else
			populateBuckets();

		// mark pool as initialized
		this.initialized = true;

	} finally {
		initDeadLock.unlock();
	}

}
 

在初始化最后设置了this.initialized = true

 

如果拿到的是同一个SchoonerSockIOPool,就会又一次初始化,这个算不算一个bug?

 

--------------------

 

在自己编程序的时候,把pool的设置集中在一个地方,只进行一次,这样应该就不会有什么问题了。

 

下面就是在MemCachedClient 中,使用这些Pool了

 

 

 

 

 

分享到:
评论

相关推荐

    memcached1

    最近一直在做一个项目的前期设计工作,考虑到后期系统的扩展和性能问题也找了很多解决方法,有一个就是用到了数据库的缓存工具memcached(当然该工具并不仅仅局限于数据库的缓存)。先简单的介绍下什么是memcached。...

    memcached-2.4.2.jar memcached-2.4.2.jar

    使用memcached 方法 package com.war.common.util; import com.danga.MemCached.*; import java.util.Date; public class MemCached { protected static MemCachedClient mcc; protected static Logger log; ...

    memcached客户端(三种客户端)

    尽管发布时间较早,但因其稳定性和广泛应用,仍然是一个可靠的选择。这种客户端使用简单的API,适合对性能要求不那么极致但重视稳定性的场景。 2. **Spymemcached** Spymemcached由Dustin Sallings编写,利用了...

    分布式缓存系统Memcached简介及开发环境搭建

    1. 初始化分布式缓存系统配置,设置服务器地址,创建一个Memcached客户端,并设定是否启用数据压缩。 ```csharp string[] serverlist = { "192.168.1.100:11211" }; // 设置服务器地址 SockIOPool pool = ...

    Memcached分布式缓存简介

    对于.NET开发者来说,尽管.NET框架本身提供了内置的缓存机制,但Memcached因其高效性和广泛支持的语言客户端,成为了一个受欢迎的选择。 分布式缓存是Memcached的核心特性之一。不同于其他分布式系统中的节点间通信...

    易语言Memcached协议客户端模块

    易语言Memcached协议客户端模块源码,Memcached协议客户端模块,Initialize,Connect,Timeout,Exptime,IsRunning,RunStorageCommand,AnalyzeMessage,Set,Add,Replace,Delete,Incr,Decr,Version,Get,GetMulti,...

    memcached缓存编程实战.pptx

    Memcached 是一个开源的、基于内存的缓存系统,用于提高动态网页的速度和效率。下面对 Memcached 缓存编程实战的知识点进行详细的解释和分析。 Memcached 介绍 Memcached 是一个高性能的缓存系统,通过减少数据库...

    MemCached-在Widnows环境下的Java之简单应用.docx

    Memcached 是一个高性能、分布式内存对象缓存系统,常用于减轻数据库的负载,通过将数据存储在内存中来加速读取。在Windows环境下,使用Java与Memcached进行交互需要几个关键步骤。 首先,你需要下载Memcached的...

    memcached总结

    为了连接到本地运行的Memcached服务,可以通过JavaMemcachedClient创建一个连接池实例,指定Memcached服务器的IP地址和端口号。示例代码如下: ```java // 创建连接池实例 SchoonerSockIOPool pool = new ...

    spring集成memcached

    在项目的资源目录下创建一个名为`memcached.properties`的配置文件,用于指定Memcached服务的基本信息和连接参数: ```properties memcached.server1=127.0.0.1 memcached.port1=11211 memcached.initConn=20 ...

    教材Java使用memcached教学.pdf

    在类中,我们定义了一个私有的`cachedClient`变量,它是`MemCachedClient`类型的实例,用于与Memcached服务器通信。 为了初始化连接池,`MemcachedUtil`类包含一个静态代码块,这里设置了连接池的相关参数。首先,...

    Memcached服务端安装及其客户端简单使用[参考].pdf

    // 设置一个值 boolean setSuccess = mcc.set("testKey", 900, "Hello, World!", 0).equals("STORED"); if (setSuccess) { System.out.println("Set success!"); } else { System.out.println("Set failed!");...

    java 使用memcached以及spring 配置memcached完整实例代码

    在Java开发中,使用Memcached作为缓存系统可以显著提高应用程序的性能,因为它是一个高性能的分布式内存对象缓存系统。Memcached能够存储和检索小的数据片段,如字符串、JSON对象或序列化的Java对象,减少对数据库的...

    Memcached简介_动力节点Java学院整理

    - javamemcached-release2.6.3:这是一个较为通用的Memcached客户端框架,可以很方便地与Memcached服务器进行交互。 - alisoft-xplatform-asf-cache-2.5.1:这是由阿里软件架构师岑文初封装的客户端库,注释是中文的...

    memcached1.2.6 & php_memcace.dll & php5.3 for windows

    PHP Warning: PHP Startup: memcache: Unable to initialize module Module compiled with module API=20090626, debug=0, thread-safety=0 PHP compiled with module API=20060613, debug=0, thread-safety=0 These...

Global site tag (gtag.js) - Google Analytics