`
danwind
  • 浏览: 233996 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

实战Memcached缓存系统(1)Memcached基础及示例程序

 
阅读更多

尊重知识,转载请注明本文来自:编程艺术家Poechant的CSDN博客 http://blog.csdn.net/potent

 

1、Cache定义
(1)狭义概念:用于CPU的相对高速处理与主存(Main Memory)的相对低速处理的之间起到协调功能的硬件设备。
(2)广义概念:用于速度相差较大的两种硬件之间,起到协调两者数据传输速度差异的结构。
狭义概念来自于Cache自1967出现以来较长时间内的应用场景。因为CPU的数据处理速度,要远远高于主存,所以在CPU和主存之间会有高速缓存设备,甚至是多级缓存设备。而广义概念,则是目前已经被广泛接受的一种定义,且广义概念中,Cache不再只局限于硬件,也可以是软件。比如用于网络相对低速传输与磁盘相对高速传输之间的速度差异协调。


2、Cache的本质原理
可以一句话概括,就是:Cache把要到慢速设备中取的数据预先放到快速设备中。


3、几种类型的Cache
(1)CPU Cache:置于CPU和主存之间,用于加速CPU对主存的相对慢速操作。
(2)Browser Cache:置于客户端与服务器之间,用于加速客户端对服务器的相对慢速操作。
(3)Server Cache:置于网络请求与本地文件之间,用于加速网络请求对本地文件的相对慢速操作。
(4)CDN:CDN即Content Delivery Network,在各地设置的节点Cache,加速用户对服务网络的相对慢速操作。
(5)Database Cache
(6)OS Cache:内存中存在的对于硬盘读写的缓冲区域。

 

4、What is Memcached?

Memcached是一个免费开源、高性能、分布式的内存对象缓存系统。Memcached是在内存中,为特定数据(字符串或对象)构建key-value的小块数据存储。

 

5、下载Memcached的服务器端软件

Windows平台版本下载:http://splinedancer.com/memcached-win32/memcached-1.2.4-Win32-Preview-20080309_bin.zip

Linux平台版本下载:http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz

 

6、在服务器上部署Memcached Server

以下以Windows平台为例:

参考:http://www.codeforest.net/how-to-install-memcached-on-windows-machine

下载下来的Windows版本解压到C:/memcached/

在控制台输入命令安装:

 

  1. c:/memcached/memcached.exe  -d install  


启动:

 

 

  1. c:/memcached/memcached.exe -d  start  


或:

 

 

  1. net start "memcached Server"  


默认的缓存大小为64M,如果不够用,请打开注册表,找到:

 

 

  1. HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/memcached  Server .  


将其内容修改为:

 

 

  1. “C:/memcached/memcached.exe” -d runservice -m 512  



 

7、下载Memcached的客户端API包

下载地址:http://spymemcached.googlecode.com/files/memcached-2.5.jar

 

8、编写一个Java数据类

 

  1. package com.sinosuperman.memcached;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5.   
  6. public class User implements Serializable{   
  7.   
  8.     private static final long serialVersionUID = -372274003834027815L;  
  9.   
  10.     String userId;  
  11.       
  12.     public User(String userId) {   
  13.         super();   
  14.         this.userId = userId;   
  15.     }  
  16.       
  17.     public String getUserId() {   
  18.         return userId;   
  19.     }   
  20.       
  21.     public void setUserId(String userId) {   
  22.         this.userId = userId;   
  23.     }   
  24.           
  25.     @Override   
  26.     public String toString() {   
  27.         // TODO Auto-generated method stub   
  28.         StringBuffer sb=new StringBuffer();   
  29.         sb.append("userId="+this.userId);   
  30.         return sb.toString();   
  31.     }   
  32. }   



 

9、编写一个Memcached的客户端

 

  1. package com.sinosuperman.memcached;  
  2.   
  3. import java.io.IOException;  
  4. import java.net.InetSocketAddress;  
  5.   
  6. import net.spy.memcached.MemcachedClient;  
  7.   
  8. public class TestMemcached {  
  9.     public static void main(String[] args) throws IOException {  
  10.         MemcachedClient cache = new MemcachedClient(new InetSocketAddress("127.0.0.1"11211));  
  11.         for (int i = 1; i < 10; i++) {  
  12.             cache.set("T0001" + i, 3600new User(i + ""));   
  13.         }  
  14.         User myObject = (User) cache.get("T00011");  
  15.         System.out.println("Get object from mem :" + myObject);   
  16.     }   
  17. }  

 

10、运行测试

 

运行结果应该如下:

 

  1. 2011-12-15 17:25:30.276 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue  
  2. 2011-12-15 17:25:30.292 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@c62080  
  3. Get object from mem :userId=1  


尊重知识,转载请注明本文来自:编程艺术家Poechant的CSDN博客 http://blog.csdn.net/poechant

分享到:
评论

相关推荐

    windows系统安装memcached缓存系统

    **标题详解:**“Windows系统安装memcached缓存系统” Memcached是一款高性能、分布式内存对象缓存系统,常用于缓解数据库负载,提升Web应用性能。标题指出,本教程主要针对在Windows操作系统上安装和配置memcached...

    php memcached缓存操作类

    总之,"php memcached缓存操作类"是为了解决PHP应用中数据缓存的问题,提供了一种简洁的接口来操作Memcached,使得开发者能够更高效地管理缓存,从而提升应用程序的响应速度和用户体验。通过理解和熟练使用此类,...

    memcached缓存处理

    **memcached缓存处理** **一、什么是memcached** `memcached`是一个高性能、分布式内存对象缓存系统,用于在动态系统中减少数据库负载。它通过将数据存储在内存中来加速读取操作,而不是每次请求都去查询数据库。...

    php memcached 缓存

    **PHP与Memcached缓存** Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的负载,提高网站的响应速度。PHP与Memcached的结合,使得开发者能够轻松地在PHP应用中实现数据...

    memcached 缓存图片

    在本示例中,我们将探讨如何使用Memcached缓存图片,以提升图片加载速度和整个网站的响应性能。 首先,了解Memcached的基本概念是必要的。Memcached基于键值对(key-value pairs)工作,允许用户存储任何序列化对象...

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

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

    Memcached缓存程序

    **Memcached缓存程序** Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高网站性能。它通过在内存中存储数据来提供快速访问,减少对数据库的直接访问次数,从而提高...

    Memcached网站应用实战

    ### Memcached网站应用实战知识点详解 #### 一、Memcached简介 Memcached是一个高性能的分布式内存对象缓存系统,主要用于缓解数据库压力,提高动态网页应用的响应速度。它通过在内存中维护一个巨大的hash表来存储...

    memcached缓存组件资料.rar

    标题中的“memcached缓存组件资料.rar”暗示了这是一个包含有关Memcached缓存系统的学习资源包,可能包括配置教程、代码示例以及平台安装指南等内容。描述中提到的“包含Linux、Windows、iOS平台的配置”,意味着这...

    memcached缓存技术代码版

    这个“memcached缓存技术代码版”可能包含了使用Java语言在Eclipse开发环境中实现Memcached缓存功能的示例代码。在这里,我们将深入探讨Memcached的基本概念、工作原理以及如何在Java项目中集成和使用它。 1. **...

    20120102 net下memcached 分布式缓存系统应用

    "net下memcached 分布式缓存系统应用" 文件名进一步确认了内容聚焦于.NET环境下的Memcached应用,可能是详细的教程、实战案例或配置指导。 **详细知识点:** 1. **Memcached介绍**:解释Memcached是什么,它的核心...

    PHP MemCached 高级缓存应用代码

    Memcached是一种高性能、分布式内存对象缓存系统,它通过减轻数据库负担来加速动态Web应用程序的速度,提高可扩展性。其工作原理是将数据存储在内存中,提供快速的数据访问速度,尤其是在高并发场景下,能够显著提升...

    memcached 缓存 linux windows 安装 集群

    ### Memcached缓存系统在Linux与Windows环境下的安装与集群配置 #### 一、概述 Memcached是一款高性能的分布式内存对象缓存系统,用于通过缓存数据库查询结果和其他开销较大的计算结果来减少数据库负载并加速动态...

    缓存服务器memcached代码及使用文档

    Memcached是一款高性能、分布式内存对象缓存系统,它被广泛应用于Web应用中,用于减轻数据库的压力,提高数据访问速度。Memcached基于一个简单的键值对存储模型,允许应用程序将数据存储在内存中,以便快速访问。...

    memcached和activeMQ的JAVA示例代码

    标题"memcached和activeMQ的JAVA示例代码"表明这是一个关于使用Java编程语言实现的,针对memcached缓存系统和activeMQ消息中间件的示例项目。这通常是为了帮助开发者理解如何在实际应用中整合这两种技术。 描述中的...

    memcached实例

    Memcached 是一个高性能的分布式内存对象缓存系统,它能够将数据存储在内存中,以减少数据库的访问压力,提高应用的响应速度。本实例将带你深入了解如何安装 Memcached 客户端,并学习如何使用它来缓存数据以及清除...

    Memcached分布式缓存简介

    Memcached是一种高性能的分布式内存对象缓存系统,主要用于动态Web应用程序,以缓解数据库负载。它通过将数据和对象存储在内存中,减少对数据库的直接访问,从而提高动态、数据库驱动网站的速度。对于.NET开发者来说...

    java 缓存系统实战(安装和实例代码)

    Java 缓存系统实战主要涉及的是使用 Memcached 这一开源缓存框架,它是一个高性能、分布式的内存对象缓存系统。Memcached 提供了 key-value 存储,旨在优化速度差异较大的硬件或软件之间的数据交互。以下是关于 ...

Global site tag (gtag.js) - Google Analytics