`
nbtlxx
  • 浏览: 253203 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

memcache的简单使用及 插入对象的实现

阅读更多
由于项目需要,今天学习了memcache的使用方法。
1. memcache的服务器端的安装
   下载memcache for win32, 解压缩后,在cmd命令行敲入命令
       memcache -start,
    就可以启动服务器端程序

2. java客户端访问
   2.1 下载memcache for java client的插件
        本人使用的是http://www.whalin.com/memcached/#download下载的
        版本号为java_memcached-release_2.0.1.jar
   2.2  进行初始化
        获得MemCachedClient对象
        static{
         连接服务器端:
               SockIOPool pool = SockIOPool.getInstance();    
         设置server, weight
               pool.setServer(), pool.setWeight()
            )
   2.3 pool.initialize(); 进行初始化动作

3. memcacheclient.set(key, value, expiredTime)
   就是插入数据,key-value成对
   和hashmap的思路一致

   注意:如果要想对某个对象进行存取操作,该对象本身进行序列化处理,否则会报空指针异常。具体的办法实现seriable就可以。

4. memcacheclient.get(key)
   根据key,得到value值

具体代码如下:

import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;


public class MemcacheTest {

	//获得关键客户端对象,方便后续的set,get方法
	protected static MemCachedClient mcc = new MemCachedClient();
	
	static{
		String[] servers = {
				"127.0.0.1:11211"
		};
		
		Integer[] weights = {
				3
		};
		
		//单例模式,获得一个实例,关键c/s连接
		SockIOPool pool = SockIOPool.getInstance();
		
		//设置服务器和权重
		pool.setServers(servers);
		pool.setWeights(weights);
		
		//设置基本配置
		pool.setInitConn(5);
		pool.setMinConn(5);
		pool.setMaxConn(250);
		pool.setMaxIdle(1000*60*60*6);
		
		//设置主线程的休眠时间
		pool.setMaintSleep(30);
		
		//tcp发送规则
		pool.setNagle(false);
		
		//连接建立后的超时控制
		pool.setSocketTO(3000);
		pool.setSocketConnectTO(0);
		
		//初始化设置
		pool.initialize();
		
		mcc.setCompressEnable(true);
		mcc.setCompressThreshold(64*1024);
	}
	
	/**
	 * 往服务器端的cache插入数据
	 * 注意key-value成对插入
	 * 参数过期时间
	 */
	public static void buildCache(){
		mcc.set("test", "this is my first test string", new Date(10000));
	}
	
	/**
	 * 取出远程服务器端的value
	 * 根据key, 取出value
	 * 并且打印
	 */
	public static void output(){
		String value = (String) mcc.get("test");
		System.out.println("value: "+ value);
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long time = System.currentTimeMillis();
		buildCache();
		output();
		System.out.println("it cost time: " + (System.currentTimeMillis() - time));
	}

}



运行结果:
value: this is my first test string
it cost time: 109
分享到:
评论

相关推荐

    简单的memcache命令

    ### 简单的Memcache命令详解 #### Memcache简介 Memcache是一种高性能、分布式内存对象缓存系统,用于加速动态Web应用通过减轻数据库负担。它通过在内存中缓存数据和对象来减少读写数据库的次数,从而提高网站的...

    php5.4 memcache 扩展包

    Memcached 是一个广泛使用的分布式内存对象缓存系统,能够存储临时数据,提高 Web 应用程序的响应速度。它通过将数据存储在内存中,减少了数据库的负载,提高了数据读取的速度。PHP 的 Memcache 扩展为开发者提供了...

    用PHP写的基于Memcache的Queue实现代码

    总的来说,这个PHP类提供了一个简单的Memcache队列实现,适用于需要快速插入和取出数据的场景,如消息队列或任务队列。不过,这种实现没有考虑并发控制和错误处理,如果在高并发环境下使用,可能需要额外的同步机制...

    用mysql触发器自动更新memcache的实现代码

    7. **测试Memcached Functions**:创建一个简单的测试环境,例如一个URL表,然后使用触发器在插入新URL时自动更新`urls:sequence`的值,并将新插入的URL存储到Memcache中。 以下是一个示例的触发器定义,用于在插入...

    基于javascript、ajax、memcache和PHP实现的简易在线聊天室

    这里提到的Memcache是一个分布式内存对象缓存系统,它能将数据存储在内存中,提供快速的访问。在高并发的聊天室场景中,Memcache能够显著提升性能,避免频繁的数据库查询,减轻数据库压力。聊天记录通常只存储一段...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    史上最全传智播客PHP就业班视频课,8月份视频

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    (全)传智播客PHP就业班视频完整课程

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    8-17 1.apache服务器使用及配置④ apache虚拟主机 web访问时序图 8-17 2.apache服务器使用及配置⑤ 作业点评 提出apache和php整合的需求 8-17 3.php开发环境的搭建和使用① appserv套件安装 8-17 4.php开发环境的...

    java高级工程师面试总结

    - **IOC(Inversion of Control,控制反转)**是Spring的核心特性之一,它通过依赖注入(DI)实现对对象创建和管理的控制反转。 - **AOP(Aspect Oriented Programming,面向切面编程)**关注于横切关注点(如日志...

    数据库教程PDF

    与Redis不同,Memcache只支持简单的键值对存储,但它的性能非常高,因为所有数据都存储在内存中。学习Memcache,你需要理解如何设置和配置缓存,以及如何有效地使用它来提升应用性能。 MongoDB是一款流行的NoSQL...

    PHP工程师面试笔试真题(某知名资讯运营商)-附解析.doc

    选项A、B和C正确,D描述了一个简单的`__toString()`实现,也是正确的。 3. 正确定义常量的语句是`const PI=3.14;`,因此选项B正确。其他选项中,`var`、`public`和`static`都不是用来定义常量的关键字。 4. 要将`...

    Memcached Study

    - **简单协议**:不使用 XML,减少解析开销。 - **内部哈希表**:用于快速定位缓存项。 - **无状态服务器**:各服务器间互不知晓对方的存在,便于扩展。 - **客户端操作:** - **键值哈希**:将键值映射到...

    PHP应用开发框架yaf-lib.zip

    添加widget组件模块,及layout插件, rpc服务化,支持hprose、yar等, 支持xhprof性能调试。requirementphp 5.3 php-yaf 2.3.3phpredis 2.2.7memcache 2.2.7zmq 1.1.2xapian-bindings 1.2.21scws 1.2.2swoole ...

    BAT大厂高频面试题:Redis+JVM+微服务+并发+Spring+MyBatis.docx

    - **内存泄漏与内存溢出**:内存泄漏是指不再使用的对象未能及时回收,导致内存空间逐渐耗尽;内存溢出则是指程序运行过程中,由于内存资源不足而引发的错误。 ### 微服务 #### 微服务架构 - **服务注册与发现**:...

    ThinkPHP1.6.0RC1_Core

    此外,ORM(对象关系映射)功能使得数据库操作更加面向对象化,降低数据库操作的复杂性。 5. URL路由: URL路由是ThinkPHP1.6.0RC1_Core的一大亮点,它允许开发者自定义URL模式,实现URL的美化,提高用户体验,...

    Redis实战 中文完整版.pdf

    在本文件中,我们可以了解到Redis的相关特性和使用方法。 1.1 Key-Value数据库 Redis属于NoSQL数据库的一种,它是一种基于内存的Key-Value存储系统。它可以用于多种场景,比如缓存、消息队列(MQ)以及会话存储等。...

    ThinkPHP 3.1 API

    ThinkPHP 3.1 提供了ActiveRecord模式,使得操作数据库如同操作对象一样简单。 4. 视图(View):视图用于展示数据,通常包含HTML、CSS和JavaScript。ThinkPHP 3.1 提供了模板引擎,可以方便地插入变量和控制结构,以...

Global site tag (gtag.js) - Google Analytics