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版, ...
随机推荐
- 可拖拽的ListBox
之前在写播放器的时候,遇到了一个问题,现在播放器无论是千千,KuGoo还是比较原始的MediaPlayer,它们的播放表都是可以拖拽的,直接把文件拖到播放表实现歌曲的添加那个先暂且不说,光是播放表里面 ...
- Equeue初识
详细解说: http://www.cnblogs.com/netfocus/p/3595410.html 简单代码用法: Producer 端代码用法实例 和 Customer 端代码用法示例: ht ...
- Ext.NET 4.1.0 GridPanel数据分页
针对大量数据在前端展示,需要进行分页显示,这里我使用的数据量为100万,数据存储在MongoDb中(也可以存储在本地文件或其它数据库中).最终显示效果如下: 步骤如下: 1.新建程序并配置,详见htt ...
- MYSQL企业常用架构与调优经验分享
一.选择Percona Server.MariaDB还是MYSQL mysql应用源码:http://www.jinhusns.com/Products/Download/?type=xcj 1.M ...
- 当使用母版页时JavaScript客户端获取服务器控件的Id
当使用MasterPage.UserControl等容器时,为了避免控件的重复命名,asp.net会自动将容器中的控件生成一个ClientID(Control Tree中的可生成,否则不会生成). J ...
- csharp: Export or Import excel using NPOI
excel 2003: using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...
- csharp: get Web.Services WebMethod
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 模拟---LCR
HDU 2778 Description LCR is a simple game for three or more players. Each player starts with three ...
- php学习笔记:自定义函数的调用
PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言.大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰. ...
- java微信开发(wechat4j)——wechat4j配置文件解读
wechat4j的配置文件是wechat4j.properties.需要放置在项目src目录下.在wechat4j.jar中的META-INF下有一个wechat4j.properties.sampl ...