Memcache入门
说来惭愧,第一次听说Memcache是在大约在6个月前。作为一个搞J2EE开发的,工作一年多了,都没听说过Memcache实在是惭愧。
当时是换了新工作,第一个任务是开发一个报表系统供公司内部使用。为了使系统能7*24小时提供服务,老大说搞两台服务器吧,然后弄个Memcache。后来换了个方式,一台服务器作为“主”服务器,正常情况下用户均访问这台机器,当访问不了的时候自动跳转到另一台机子,实在服务器上做了一次跳转。然后就没有去看Memcache。下午有空就学习了一下,以下是自己的学习纪录。
Memcache是一种高性能分布式内存缓存服务器。
memcached is a high-performance, distributed memory object caching system, generic in nature, but originally intended for use in speeding up dynamic web applications by alleviating database load.
安装Libevent:
Memcache使用Libevent操作网络IO,所以先安装Libevent http://libevent.org/
$wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
$tar -zxvf libevent-2.0.21-stable.tar.gz
$cd libevent-2.0.21-stable
$autoconf
$./configure --prefix=/usr/local
$make
$sudo make install
安装Memcache:
$wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
$tar -zxvf memcached-1.4.15
$cd memcached-1.4.15
$autoconf
$./configure --prefix=/usr/local
$make
$sudo make install
启动Memcache:
启动Memcache守护进程,使用64M内存,11211端口
$memcached -d -m 64 127.0.0.1 -p 11211
测试:
通过telnet server port使用刚才启动的服务

上面使用了set\get\quit命令,下面是一些常用命令
| 
 Command  | 
 Description  | 
 Example  | 
| 
 get  | 
 Reads a value  | 
 get mykey  | 
| 
 set  | 
 Set a key unconditionally  | 
 set mykey 0 60 5  | 
| 
 add  | 
 Add a new key  | 
 add newkey 0 60 5  | 
| 
 replace  | 
 Overwrite existing key  | 
 replace key 0 60 5  | 
| 
 append  | 
 Append data to existing key  | 
 append key 0 60 15  | 
| 
 prepend  | 
 Prepend data to existing key  | 
 prepend key 0 60 15  | 
| 
 incr  | 
 Increments numerical key value by given number  | 
 incr mykey 2  | 
| 
 decr  | 
 Decrements numerical key value by given number  | 
 decr mykey 5  | 
| 
 delete  | 
 Deletes an existing key  | 
 delete mykey  | 
| 
 flush_all  | 
 Invalidate specific items immediately  | 
 flush_all  | 
| 
 Invalidate all items in n seconds  | 
 flush_all 900  | 
|
| 
 stats  | 
 Prints general statistics  | 
 stats  | 
| 
 Prints memory statistics  | 
 stats slabs  | 
|
| 
 Prints memory statistics  | 
 stats malloc  | 
|
| 
 Print higher level allocation statistics  | 
 stats items  | 
|
| 
 stats detail  | 
||
| 
 stats sizes  | 
||
| 
 Resets statistics  | 
 stats reset  | 
|
| 
 version  | 
 Prints server version.  | 
 version  | 
| 
 verbosity  | 
 Increases log level  | 
 verbosity  | 
| 
 quit  | 
 Terminate telnet session  | 
 quit  | 
在Java中使用:
在Java中使用Memcache需要一个客户端,本文使用的是xMemcache。
"XMemcached是一个新java memcached client。也许你还不知道memcached是什么?可以先看看这里。简单来说,Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,现在也有很多人将它作为内存式数据库在使用,memcached通过它的自定义协议与客户端交互,而XMemcached就是它的一个java客户端实现。"
简单的测试



memClient.set("test", 0, "hello world");
memClient.set("test1", 30, "hello world 111");
区别在与第二个参数,他的含义是
第一个是存储的 key 名称,第二个是 expire 时间(单位秒) ,超过这个时间 ,memcached 将这个数据替换出去, 0 表示永久存储(默认是一个月) ,第三个参数就是实际存储的数据,可以是任意的 java 可序列化类型 。
在过30秒之后再去取test1将取到null
更多xMemcache内容见https://code.google.com/p/xmemcached/wiki/User_Guide_zh
https://code.google.com/p/xmemcached/
http://xmemcached.googlecode.com/svn/trunk/apidocs/net/rubyeye/xmemcached/MemcachedClient.html
Memcache入门的更多相关文章
- Memcache入门知识
		
Memcache适合做缓存,是一款管理内存的很小的软件,实现对内存数据的管理,一般我们用memcache存储临时数据,因为内存不能储存永久化的数据,内存里面的数据,断电就消失了. memcache可以 ...
 - 超级简单的Memcache入门
		
Memcache 就是一个数据库,将数据保存在内存中 常用于缓存服务器,保存操作频繁,丢失无所谓的数据 启动选项 -d 是一个守护进程 -m 内存分配 -u 用户 -l 监听地址 -p 端口 -c 最 ...
 - memcache入门笔记
		
向memcached保存数据时可以指定期限(秒).不指定期限时,memcached按照LRU算法保存数据. 这三个方法的区别如下: 选项 说明 add 仅当存储空间中不存在键相同的数据时才保存 rep ...
 - C# Memcache分布式缓存简单入门
		
什么是Memcache?能做什么? 以下是百度的观点: memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问 ...
 - memcache 简单入门应用
		
1.memcache 简介和安装: 下载:下载文件,解压到某个地方. 2.数据存储格式 键值对,一个key对应一个值,一个值在内存中占用一个或多个4k大小的块. 3.php使用memcache的方式 ...
 - Sina App Engine(SAE)入门教程(6)- memcache使用
		
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...
 - [浪风推荐]php的memcache应用入门教程
		
所需环境: php 5.3.3 apache 2.2.7 mysql 5.5.8 解压Memcached_1.2.5文档,cmd下执行memcached.exe -d -install 将php5.3 ...
 - spring boot(一):入门篇
		
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
 - OpenStack云计算快速入门之二:OpenStack安装与配置
		
原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...
 
随机推荐
- 以对象的方式来访问xml数据表(三)
			
怎样以对象的方式来访问xml数据表? 在讲如何具体实现(二)中所说的专门用于访问xml文件的动态链接库之前,我们先来看看这个动态链接库具体要实现什么功能. 动态链接库IXmlDB.dll的功能: 1. ...
 - 别误用IsDigit与IsNumber函数
			
1.起因 最近发现程序中有一段控制TextBox数字输入的代码,相信大家都不会太陌生,如下: void int_KeyPress(object sender, KeyPressEventArgs e) ...
 - 用stimulsoft Reports报表工具制作简单报表的过程
			
这是在数据库sql server中People表的数据
 - java service wrapper 级别为info导致内存剧增直至溢出
			
上周,公司某一环境发生java service wrapper内存剧增导致最后被自动killed的情况,经过分析,确定导致java service wrapper(后续简称wrapper)守护进程内存 ...
 - 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理
			
Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...
 - linux 查看占用内存/CPU最多的进程
			
可以使用一下命令查使用内存最多的5个进程 ps -aux | sort -k4nr | head -n 5 或者 top (然后按下M,注意大写) 可以使用一下命令查使用CPU最多的5个进程 ps - ...
 - 请用fontAwesome代替网页icon小图标
			
1. 引言 网页小图标到处可见,如果一个网页都是干巴巴的文字和图片,而没有小图标,会显得非常简陋.下面的小图标,你是不是会经常用到? 你可能说——“我们用的都是彩色的,不是黑白的”——别着急,下面会讲 ...
 - c#多线程生产者消费者(手稿)
			
屋舍简陋,隔壁的娃娃哭了一晚,心中无恶意纯中性的想,有病就赶紧带孩子去看医生吧,能哭这么久估计孩子真的不舒服.
 - CSS选择器特殊性与重要性
			
特殊性 在编写CSS代码的时候,我们会出现多个样式规则作用于同一个元素的情况,例如 <!-- HTML --> <header> <nav class="nav ...
 - basket.js 源码分析
			
basket.js 源码分析 一.前言 basket.js 可以用来加载js脚本并且保存到 LocalStorage 上,使我们可以更加精准地控制缓存,即使是在 http 缓存过期之后也可以使用.因此 ...