`
jzkangta
  • 浏览: 157802 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ubuntu下安装memcache(转)

阅读更多
memcache的介绍和功能就不说了..
直接进入安装步骤

1. 查自己的源里有没有memcache
   sudo apt-cache search memcache
2. 如果有,那真是走狗屎运了..
   sudo apt-get install memcache
   这时候会提示关联了 libevent0 ,是否安装? 废话..当然是yes
   然后很顺利的就安装完了..
3. 如果第一步你的源里没有memcache..
   那就有点杯具了..去ubuntu的论坛里把各种官方源都添加进去把...
   记得 sudo apt-get update 一下

-----------
检验是否安装成功.
-----
1. 安装成功之后,memcache就自己启动了.通过进程查看一下
   ps -aux
   会查到一条记录
   /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
   显示的就是 memcached 的端口11211 用户nobody 地址 127.0.0.1
2. 连接memcached 服务器
   telnet 127.0.0.1 11211
   然后输入 stats
   就显示出来当前memcached的各种参数了..
Java代码  收藏代码

   1. kyle@kyle-laptop:~$ telnet 127.0.0.1 11211 
   2. Trying 127.0.0.1... 
   3. Connected to 127.0.0.1. 
   4. Escape character is '^]'. 
   5. stats 
   6. STAT pid 7128 
   7. STAT uptime 1258 
   8. STAT time 1259138295 
   9. STAT version 1.2.2 
  10. STAT pointer_size 32 
  11. STAT rusage_user 0.004000 
  12. STAT rusage_system 0.008000 
  13. STAT curr_items 0 
  14. STAT total_items 0 
  15. STAT bytes 0 
  16. STAT curr_connections 1 
  17. STAT total_connections 3 
  18. STAT connection_structures 2 
  19. STAT cmd_get 0 
  20. STAT cmd_set 0 
  21. STAT get_hits 0 
  22. STAT get_misses 0 
  23. STAT evictions 0 
  24. STAT bytes_read 39 
  25. STAT bytes_written 479 
  26. STAT limit_maxbytes 67108864 
  27. STAT threads 1 
  28. END 

kyle@kyle-laptop:~$ telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats
STAT pid 7128
STAT uptime 1258
STAT time 1259138295
STAT version 1.2.2
STAT pointer_size 32
STAT rusage_user 0.004000
STAT rusage_system 0.008000
STAT curr_items 0
STAT total_items 0
STAT bytes 0
STAT curr_connections 1
STAT total_connections 3
STAT connection_structures 2
STAT cmd_get 0
STAT cmd_set 0
STAT get_hits 0
STAT get_misses 0
STAT evictions 0
STAT bytes_read 39
STAT bytes_written 479
STAT limit_maxbytes 67108864
STAT threads 1
END




这样我们的memcached服务器就安装完了....
真是好简单阿..越来越爱ubuntu了..

--------------
3. 手动启动memcached
   memcached  -d  -m 128 -l 127.0.0.1 -p 11211 -u root
   以root用户,分配最大2GM内存启动memcache
   memcached  -d  -m 128 -l 127.0.0.1 -p 11212 -u root
   在另外一个端口11212启动另外一个memcache实例
---
后续将介绍如何使用memcache,以及对其的优化.



------------------以下原文来自:http://netsoft.blogbus.com/logs/42608023.html


最近Internet上炒得很热的memached系统是由Danga Interactive开发的一个分布式,高性能的内存对象缓存系统,主要用来分担数据库的压力和提高系统的访问能力。

   memcached实际上是在内存中缓存了一张巨大的hash表,memcached在运行时可以用它来存放各种数据,包括视频,声音,大文件,数据库检索结果等 。

  memcached 非常快,它使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态), 使用自己的页块分配器和哈希表, 因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1).。

它的特点就是memcached是分布式的,它解决了共享内存只能单机应用的局限。

使用方法:

  1,首先从memcached网站下载最新版的memcached源码包,同时去libevent下载最新的libevent源码。

  2,解压下载回来的两个包。

  3,由于memcached需要使用libevent我们需要首先安装libevent

       cd libevent

       ./configure --prefix=/usr

       make

       sudo make install (这一步必需要用sudo 执行,否则会因为没有权限而报错,因为在编译过程中需要新建目录)

如果中间有报错,请参照错误信息来配置或者增加需要的库。

  检测libevent 安装是否成功,输入:# ls -al /usr/lib | grep libevent  会出现如下结果(不同的机器可能有不同的输出):

   yangfei@yangfei-laptop:~$ ls -al /usr/lib |grep libevent
lrwxrwxrwx   1 root    root          21 2009-07-19 08:45 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3
-rwxr-xr-x   1 root    root      301588 2009-07-19 08:45 libevent-1.4.so.2.1.3
-rw-r--r--   1 root    root      386638 2009-07-19 08:45 libevent.a
lrwxrwxrwx   1 root    root          26 2009-07-19 08:45 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3
-rwxr-xr-x   1 root    root      115721 2009-07-19 08:45 libevent_core-1.4.so.2.1.3
-rw-r--r--   1 root    root      151618 2009-07-19 08:45 libevent_core.a
-rwxr-xr-x   1 root    root         860 2009-07-19 08:45 libevent_core.la
lrwxrwxrwx   1 root    root          26 2009-07-19 08:45 libevent_core.so -> libevent_core-1.4.so.2.1.3
lrwxrwxrwx   1 root    root          27 2009-07-19 08:45 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3
-rwxr-xr-x   1 root    root      239933 2009-07-19 08:45 libevent_extra-1.4.so.2.1.3
-rw-r--r--   1 root    root      298406 2009-07-19 08:45 libevent_extra.a
-rwxr-xr-x   1 root    root         867 2009-07-19 08:45 libevent_extra.la
lrwxrwxrwx   1 root    root          27 2009-07-19 08:45 libevent_extra.so -> libevent_extra-1.4.so.2.1.3
-rwxr-xr-x   1 root    root         825 2009-07-19 08:45 libevent.la
lrwxrwxrwx   1 root    root          21 2009-07-19 08:45 libevent.so -> libevent-1.4.so.2.1.3

4,接下来安装memcached

    cd memcached

   ./configure --with-libevent=/usr

   make

   sudo make install ()  (这一步必需要用sudo 执行,否则会因为没有权限而报错,因为在编译过程中需要新建目录)

如果中间有报错,请参照错误信息来配置或者增加需要的库。

  检查memcached 是否安装成功(不同机器可能输出不同): s -al /usr/local/bin/mem*

  yangfei@yangfei-laptop:~$ ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 210268 2009-07-19 08:46 /usr/local/bin/memcached

至此安装已经完成。

下面我们通过命令启动memcached

   /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.67 -p 20000 -c 256 -P tmp/memcached.pid
  -d 代表启动一个守护进程,-m 是分配给memcached的内存 单位是MB,-u 是代表启动memcached的用户,-l是监听的服务器的地址(也可以在程序中增加,维护) -p 是端口号 ,-c 是运行时最大的并发连接数 默认是1024 -P是设置保存memcached的pid文件。更多的参数。你可以通过memcached -h 来查看。

启动完成后,你可以使用telnet 来查看当前memcached的运行状态。命令:telnet 192.168.0.56 20000

yangfei@yangfei-laptop:~$ telnet 192.168.0.67 20000
Trying 192.168.0.67...
Connected to 192.168.0.67.
Escape character is '^]'.

摸黑输入stats 就会打印出目前memcached的服务器状态。uptime 是memcached运行的秒数,cmd_get是查询缓存的次数。这两个数据相除一下就能得到平均每秒请求缓存的次数。其它状态的含义可以查找相关文档,不一一列出。

如果要关掉memcached服务可以使用:killall -9 memcached

然后你就可以下载xmemcached 客户端来在java中使用memcached,写了一个简单的示例如下:

import java.io.IOException;

import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.XMemcachedClient;

public class MemCachedDemo {
    public static void main(String[] args) {
        try {
            MemcachedClient client=new XMemcachedClient("192.168.0.67",20000);
            client.set("key", 20, "object");
            System.out.println(client.get("key"));
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
      
    }
}

xmemcached是由Dennis基于memcached Client API开发的java的Client API.项目地址为:http://code.google.com/p/xmemcached/  具体使用方法可以参照项目wiki中的示例和文档。注意最新版的client api是基于JDK1.6
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics