一,什么是memcached?

  • Memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载。。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。(摘自百科)
  • free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.   Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.  Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.(摘自:http://memcached.org/
 
二,memcached的主要优点和功能是什么?
  • memcached的主要设计目的是减少数据库读取的次数,对初次读取进行缓存处理,提供高速查询服务。
  • 由于使用了一致性哈希算法,分布式结构的memcached可以很好地达到负载均衡。
 
三,如何使用memcached?
Memcached守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
1,memcached在ubuntu上的安装
安装libevent
  • libevent下载,地址:http://libevent.org/
  • 解压:tar -zxvf libevent-******
  • 移动:mv libevent-***** /usr/local/libevent
  • ./configure --prefix=/usr
  • make
  • make install
  • 查看是否成功:ls -al /usr/lib | grep libevent
  • (安装过程可能出现权限问题,sudo即可)
安装memcached:
 
2,memcached命令解释及使用
启动memcached:
  • /usr/local/bin/memcached -d -m 1024 -u root -p 11211 -P /tmp/memcached.pid
参数:
-d 启动守护进程(后台运行) 
      -m 分配给memcache使用的内存,单位是MB
      -u 运行memcached的用户
      -l 监听的服务器IP
      -p 监听的服务器端口,默认是11211
      -P(大写) 保存Memcache的pid文件,后面跟路径
检测是否启动可以用tlenet命令: telnet 127.0.0.1 11211

stats可以查看memcached的详细信息

memcached命令使用:

参考文章:http://www.cnblogs.com/wayne173/p/5652034.html,以下部分截图

3,memcached Java API使用
memcached提供了三种API:
-  官方提供的基于传统阻塞io由Greg Whalin维护的客户端  
-  Dustin Sallings实现的基于java nio的Spymemcached  
- XMemcached
 
这里我们使用XMemcached来介绍。
api的使用方法比较简单,直接上代码。
 import java.io.IOException;
import java.util.concurrent.TimeoutException;
import net.rubyeye.xmemcached.utils.AddrUtil;
import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.exception.MemcachedException; public class MemcachedTest { public static void main(String[] args) {
//新建一个创建器,通过AddrUtil获取memcached的ip:port
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("192.168.3.152:11211"));
//memcached客户端
MemcachedClient memcachedClient;
try {
//建立一个客户连接
memcachedClient = builder.build();
//set一个键值对,参数1:key 参数2:expireTimeS,参数3:value
memcachedClient.set("hello", 0, "Hello,xmemcached");
//get根据键取值
String value = memcachedClient.get("hello");
System.out.println("hello=" + value);
//delete根据键删去值
memcachedClient.delete("hello");
value = memcachedClient.get("hello");
System.out.println("hello=" + value);
// close memcached client
memcachedClient.shutdown();
} catch (MemcachedException e) {
System.err.println("MemcachedClient operation fail");
e.printStackTrace();
} catch (TimeoutException e) {
System.err.println("MemcachedClient operation timeout");
e.printStackTrace();
} catch (InterruptedException e) {
// ignore
} catch (IOException e) {
System.err.println("Shutdown MemcachedClient fail");
e.printStackTrace();
}
}
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

初识Memcached的更多相关文章

  1. QQ游戏百万人同时在线服务器架构实现

    转载自:http://morton5555.blog.163.com/blog/static/976407162012013112545710/# QQ游戏于前几日终于突破了百万人同时在线的关口,向着 ...

  2. iOS网络通信http之NSURLConnection

    iOS网络通信http之NSURLConnection 移动互联网时代,网络通信已是手机终端必不可少的功能.我们的应用中也必不可少的使用了网络通信,增强客户端与服务器交互.这一篇提供了使用NSURLC ...

  3. Memcached初识

    高性能分布式内存对象缓存系统. 参考: Memcached官网: Memcached简介-1:Memcached简介-2: Memcached 教程 | 菜鸟教程:

  4. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

  5. Maven的下载,安装,配置,测试,初识以及Maven私服

    :Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf:含有settings.xml配置文件 lib:含有Maven运行时所需要的 ...

  6. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  7. day35 数据库介绍和初识sql

    今日内容: 1. 代码: 简易版socketsever 2.数据库(mysql)简单介绍和分类介绍 3.mysql root修改密码 4.修改字符集编码 5.初识sql语句 1.简易版socketse ...

  8. redis实战笔记(1)-第1章 初识Redis

    第1章 初识Redis 注:本书在redis3.0版本的,比如redis3.0以后支持服务端集群.3.0之前只能客户端分片.    本章主要内容 1.Redis与其他软件的相同之处和不同之处 2.Re ...

  9. 第一章 初识shiro

    shiro学习教程来自开涛大神的博客:http://jinnianshilongnian.iteye.com/blog/2018936 第一章 初识shiro 简单了解shiro主要记住三张图即可. ...

随机推荐

  1. 搜狗输入法弹出搜狐新闻的解决办法(sohunews.exe)

    狗输入法弹出搜狐新闻的解决办法(sohunews.exe) 1.找到搜狗输入法的安装目录(一般是C:\program files\sougou input\版本号\)2.右键点击sohunews.ex ...

  2. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  3. PHP聊天室框架

    内容和教程可以在这个网址查看 http://www.workerman.net/workerman-chat

  4. IOC及Bean容器

    1. 接口及面向接口编程 1.1. 接口 用于沟通的中介物的抽象化 实体把自己提供给外界的一种抽象化说明,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式 对应JA ...

  5. pods的安装和使用

    ////  pods的安装.h//  IOS笔记 /*Cocoapods安装步骤 1.升级Ruby环境 终端输入:$gem update --system 此时会出现 ERROR:  While ex ...

  6. ecshop中user.php中的$user说明---user表加字段

    今天想对user表加个字段,打开user.php发现有个$user,其中它有很多方法,像登陆,注册,退出.都要用到它.可找了大半天也找不到这个函数调用的是哪个类.又坚持找了半天,发现$user在ini ...

  7. How do you build a database?

    在reddit上看到的一篇讲解数据库实现的文章,非常有意思,在这里记录一下. 回答者technical_guy: Its a great question, and deserves a long a ...

  8. HTTP POST GET详解

    get /shang/a1.php http/1.1 host: localhost                           POST /shang/a1.php HTTP/1.1 Hos ...

  9. C# Ping的例子,可用于测试网络,延迟xx毫秒 C#编写网站测速

    C#编写网站测速 WebClient wcl = new WebClient(); Stopwatch spwatch = new Stopwatch(); spwatch.Start(); byte ...

  10. 在同一个机器上运行两个jboss修改配置

    http://blog.sina.com.cn/s/blog_8ebe17aa0101mnft.html 解决办法:修改 \jboss-4.0.4.GA\server\default\conf 目录下 ...