`
abao1
  • 浏览: 8736 次
  • 性别: Icon_minigender_1
  • 来自: 星星的我
社区版块
存档分类
最新评论

memcache缓存

阅读更多

Memcached的安装
在1.4.5版本之前,memcached可以被安装成一个服务,但之后的版本中该功能被移除了。因此memcached的安装可以分为两类,第一类是1.4.5之前的版本,另一类是1.4.5之后的版本。

这里以1.4.5也就是之后的版本为例
1.将下载的文件解压到任意目录。
2.点开运行cmd,一直进入到下载的文件中,最后输入Memcached-x86 –p 11211 –m 128 –vv
  选项 说明
  -p 使用的TCP端口,默认为11211
  -m 最大内存大小默认为64m
  -vv 用very verbose模式启动,调试信息和错误输出到控制台
  -d 作为daemon在后台启动
3.将下载文件中的jar包导入到项目
4.添加一个辅助类
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class MemcachedUtil {

/**
     * memcached客户端单例
     */
    private static MemCachedClient cachedClient = new MemCachedClient();
    
    /**
     * 初始化连接池
     */
    static {
        //获取连接池的实例
        SockIOPool pool = SockIOPool.getInstance();
        
        //服务器列表及其权重
        String[] servers = {"127.0.0.1:11211"};
        Integer[] weights = {3};
        
        //设置服务器信息
        pool.setServers(servers);
        pool.setWeights(weights);
        
        //设置初始连接数、最小连接数、最大连接数、最大处理时间
        pool.setInitConn(10);
        pool.setMinConn(10);
        pool.setMaxConn(1000);
        pool.setMaxIdle(1000*60*60);
        
        //设置连接池守护线程的睡眠时间
        pool.setMaintSleep(60);
        
        //设置TCP参数,连接超时
        pool.setNagle(false);
        pool.setSocketTO(60);
        pool.setSocketConnectTO(0);
        
        //初始化并启动连接池
        pool.initialize();
        
        //压缩设置,超过指定大小的都压缩
//      cachedClient.setCompressEnable(true);
//      cachedClient.setCompressThreshold(1024*1024);
    }
    
    private MemcachedUtil(){
    }
    
    public static boolean add(String key, Object value) {
        return cachedClient.add(key, value);
    }
    
    public static boolean add(String key, Object value, Date expireDate) {
        return cachedClient.add(key, value, expireDate);
    }
   
    public static boolean add(String key, Object value, Integer millSeconds){
    return cachedClient.add(key, value, new Date(new Date().getTime()+millSeconds));
    }
    
    public static boolean put(String key, Object value) {
        return cachedClient.set(key, value);
    }
    
    public static boolean put(String key, Object value, Date expireDate) {
        return cachedClient.set(key, value, expireDate);
    }
   
    public static boolean put(String key, Object value, Integer millSeconds){
    return cachedClient.set(key, value, new Date(new Date().getTime()+millSeconds));
    }
    
    public static boolean replace(String key, Object value) {
        return cachedClient.replace(key, value);
    }
    
    public static boolean replace(String key, Object value, Date expireDate) {
        return cachedClient.replace(key, value, expireDate);
    }
   
    public static boolean replace(String key, Object value, Integer millSeconds){
    return cachedClient.replace(key, value, new Date(new Date().getTime()+millSeconds));
    }
    
    public static Object get(String key) {
        return cachedClient.get(key);
    }
   
   public static Object delete(String key) {
       return cachedClient.delete(key);
   }
}
5.被添加的缓存的类(实体类)必须实现序列化Serializable
6.自己写的方法中就可以类似这样写
                List<Goods> list=null;

String key=String.format("ALL_GOOD_%s",gname);
                //先从缓存中取值
list=(List<Goods>) MemcachedUtil.get(key);
if(list!=null){
System.out.println("在缓存中取到值了");
}else{
System.out.println("数据库取到的值");
list=goodService.getGoodlist(gname);
//向缓存中添加这个值(第三个参数是缓存的有效时间)
MemcachedUtil.add(key, list, 20000);
}
7.如果修改数据 然后 返回到查询的页面时 ,应该把缓存删除,调用MemcachedUtil.delete(key)方法
0
0
分享到:
评论

相关推荐

    Memcache缓存技术,Memcache配置说明及其文件,PHP5.2.6版本内存缓存技术配置

    在本主题中,我们将详细探讨Memcache缓存技术,特别是针对PHP5.2.6版本的配置以及在Windows操作系统的应用。 首先,理解Memcache的基本原理至关重要。Memcache的工作机制是在内存中存储数据,当应用程序需要访问...

    java版memcache缓存管理与开发

    ### Java版Memcache缓存管理与开发 #### Memcache简介及其在高流量网站中的作用 在高流量网站中,为了缓解数据库的压力并提高网站响应速度,通常会采用Memcache作为缓存解决方案。Memcache是一种高性能、分布式...

    ThinkPHP 3.1.2 支持分布式 Memcache 缓存类库

    ThinkPHP 3.1.2 官方只能支持一台Memcache缓存,不支持多台分布式Memcache缓存,现在简单改一下官方缓存类库(CacheMemcache.class.php)源代码就可以了。 亲测可用,放心使用,分享万岁!

    memcache缓存分布式集群

    在标题提到的“memcache缓存分布式集群”中,主要涉及以下知识点: 1. **分布式存储原理**:分布式存储是将数据分散存储在多台独立的设备上,以提高系统的可扩展性和可用性。Memcache分布式集群就是通过将数据分散...

    PHP中Memcache缓存技术的使用

    Memcache缓存技术 安装 使用 教程 步骤的讲解

    memcache缓存配置包(dll,memched,配置方法)

    **Memcache缓存技术详解** Memcache是一种广泛应用于Web开发中的分布式内存缓存系统,它能够有效提升应用程序的性能,减少数据库的负载。这个压缩包提供了在PHP环境中配置和使用Memcache所需的关键组件。 1. **...

    继上一版留言本并加入memcache缓存和pdo连接方式

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而这个项目“继上一版留言本并加入memcache缓存和pdo连接方式”显然就是这样的一个实践案例。它基于上一版本的留言本系统进行了优化,引入了memcache缓存技术和...

    Memcache缓存

    ### Memcache缓存详解 #### 一、Memcache概述 Memcache是一种开源的、高性能的分布式内存对象缓存系统,它的主要目标是为了减轻数据库的负担,提高网站的响应速度。Memcache通过在内存中缓存数据和对象来减少对...

    springmvc配置Memcache缓存Demo

    在这个"springmvc配置Memcache缓存Demo"中,我们将探讨如何在Spring MVC项目中集成Memcache,一个高性能的分布式内存对象缓存系统,以提升应用的性能。 首先,让我们了解Memcache的基本概念。Memcache是一个开源的...

    Java memcache缓存实现for Windows.pdf

    Java Memcache 缓存实现是将高性能的分布式内存对象缓存系统Memcache应用于Windows环境中的技术。Memcache是一个用于存储各种类型数据的高速缓存系统,包括但不限于图像、视频、文件和数据库查询结果,它的核心原理...

    memcache缓存机制

    这个"memcache 缓存机制"插件可能是一个用于集成Memcached服务到应用程序中的工具,通过它,我们可以更方便地利用Memcached的优势。 1. **基本概念** - **键值对存储**:Memcached基于键值对(key-value)存储数据,...

    Memcache缓存知识

    Memcache缓存知识

    memcache 缓存 分布式

    **Memcache缓存技术详解** Memcache是一种高性能的分布式内存对象缓存系统,它能够将数据存储在服务器的内存中,以减少对数据库的访问,从而显著提高网站的响应速度和处理能力。作为一款轻量级的缓存解决方案,...

    ThinkPHP3.2.3框架Memcache缓存使用方法实例总结

    本文实例讲述了ThinkPHP3.2.3框架Memcache缓存使用方法。分享给大家供大家参考,具体如下: 前面一篇文章讲述了Linux下安装Memcached服务器和客户端,这里来总结一下ThinkPHP3.2.3框架Memcache的使用方法。 方法一:...

    ThinkPHP简单使用memcache缓存的方法

    本文实例讲述了ThinkPHP简单使用memcache缓存的方法。分享给大家供大家参考,具体如下: Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件。 服务器装了memcached后想给更改成memecache...

    php操作memcache缓存方法分享

    【PHP操作Memcache缓存方法】 在PHP中,Memcache是一种流行的数据缓存系统,用于提高网站或应用程序的性能。Memcache将数据存储在内存中,以便快速访问,减轻数据库的负担。要使用PHP操作Memcache,首先需要在...

    使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

    本文将深入探讨Memcache缓存MySQL数据库操作的原理和流程。 首先,理解Memcache的基本工作原理。Memcache将数据存储在内存中,由于内存的读取速度远超硬盘,因此可以快速响应数据请求。当应用需要数据时,它首先...

    MemCache对象缓存应用

    1. **Web应用加速**:对于高并发的Web应用,使用MemCache缓存常用数据,可以显著减少数据库的读取压力。 2. **减少数据库负载**:避免大量重复的数据库查询,提高数据库的使用寿命。 3. **Session共享**:在分布式...

Global site tag (gtag.js) - Google Analytics