尊重知识,转载请注明本文来自:编程艺术家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. import java.io.Serializable;
  3. public class User implements Serializable{
  4. private static final long serialVersionUID = -372274003834027815L;
  5. String userId;
  6. public User(String userId) {
  7. super();
  8. this.userId = userId;
  9. }
  10. public String getUserId() {
  11. return userId;
  12. }
  13. public void setUserId(String userId) {
  14. this.userId = userId;
  15. }
  16. @Override
  17. public String toString() {
  18. // TODO Auto-generated method stub
  19. StringBuffer sb=new StringBuffer();
  20. sb.append("userId="+this.userId);
  21. return sb.toString();
  22. }
  23. }

9、编写一个Memcached的客户端

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

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

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

  1. 实战Memcached缓存系统

    实战Memcached缓存系统 1. What is Memcached? Memcached是一个免费开源.高性能.分布式的内存对象缓存系统.Memcached是在内存中,为特定数据(字符串或对象) ...

  2. 安装telnet_Flask干货:Memcached缓存系统——Memcached的安装

    图 | 源网络文 | 5号程序员 Memcached缓存系统是目前使用最广泛的高性能分布式内存缓存系统,是一个自由开源的高性能分布式内存对象缓存系统. 国内外众多大型互联网应用都选择Memcached ...

  3. Memcached 缓存系统的-介绍、安装以及应用

    一. memcached 是什么? memcached is a high-performance, distributed memory object caching system, generic ...

  4. 实战Memcached缓存系统(5)Memcached的CAS程序实例

    1. 非CAS 首先看一个不是CAS的Memcached程序实例.实例的问题原型,见上一篇博文. 程序实例: package com.sinosuperman.memcached; import ja ...

  5. 分布式缓存系统之Memcached

    简单介绍: Memcache缓存数据库:减少数据库压力.高性能的分布式内存缓存服务器,用于动态Web应用,减少I/O,提高web访问速度以减轻数据库负载,以提高动态Web应用的速度.提高可扩展性.利用 ...

  6. Memcached 数据缓存系统

    Memcached 数据缓存系统 常用命令及使用:http://www.cnblogs.com/wayne173/p/5652034.html Memcached是一个自由开源的,高性能,分布式内存对 ...

  7. .NET下实现分布式缓存系统Memcached

    [IT168 技术文档]在Web应用程序中,数据通常保存在RDBMS中,应用服务器从数据库中读取数据并在浏览器中显示.但随着数据量的增大.访问的集中,就会出现RDBMS的负载加重.数据库响应变慢.网站 ...

  8. Linux分布式缓存系统——memcached+LAMP环境搭建+监控

    概述 memcached简介 Memcached是一个开源.高性能.分布式内存对象缓存系统. Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串.对象),这些数据 ...

  9. Memcache缓存系统原理

    在Web服务开发中,服务端缓存是服务实现中所常常采用的一种提高服务性能的方法.其通过记录某部分计算结果来尝试避免再次执行得到该结果所需要的复杂计算,从而提高了服务的运行效率. 除了能够提高服务的运行效 ...

最新文章

  1. 《Python编程初学者指南》——1.6 回到Game Over程序
  2. 04-树7 二叉搜索树的操作集(c语言实现)
  3. curl -windows下接口通讯
  4. PHP获取QQ等级,php仿QQ等级太阳显示函数
  5. 如何读取指针指向的地址空间呢?
  6. 物联网卡封卡原因有哪些
  7. Java实现拖动图片验证处理
  8. java.util.ConcurrentModificationException: null at java.util.ArrayList$Itr.checkForComodification(A
  9. Firefox 火狐浏览器 windows 启用Flash
  10. 不能显示隐藏文件或文件夹的完整解决方案
  11. 芝诺数解|「十三」一菜一格,百菜百味——重庆川菜数据分析报告
  12. 如何在CAD中等比例插入光栅图像
  13. PHP 自动生成sitemap
  14. 骁龙 820 车用处理器
  15. 学php设计需要什么基础知识,学习seo需要哪些基础知识
  16. WordPress 衍生产品 BuddyPress 年底发布
  17. 麻将胡牌算法 极速(速度接近理论极限)
  18. C# winform实现excel导入导出 及实现过程中的问题解决
  19. Good url for LSTM learning
  20. 英语常用方位和位置表达

热门文章

  1. Javac编译与JIT编译
  2. 11. spring-容器: @Value, @PropertySource详解
  3. java relativepath_Java IFile.getProjectRelativePath方法代码示例
  4. 如何用课件制作工具制作三角形旋转动画
  5. Explainable
  6. 单节锂电池充电(电路)芯片TP4056
  7. 频率响应范围测试软件,高速光电探测器频率响应特性测试研究
  8. 微信红包新玩法:利是说语音口令红包
  9. c语言是什么意思,C语言=是什么意思?
  10. 技术贴:骁龙820和骁龙625的区别