`
yahaitt
  • 浏览: 760026 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

memcached是由livejournal团队(danga.com)制作的开源缓存软件,是缓存机制的一种实现,用它之所以高效,是因为它是利用了内存,使用好了能够大大加快页面或者是其它程序的执行速度。要注意的是一旦服务器停止,内存中的缓存数据会被清空。

win32下,需要启动memcached服务,首先下载相关的memcached文件(用于启动服务的windows.rar在附件中),解压后可以自己选择,这里我选择的是2.1版本的,将其中的memcached.exe和memcached.ini(里面也就这俩文件)拷贝到某路径下(如:E:\java\memcached2.1),然后通过cmd命令窗口,先转入到该路径,然后按如下步骤输入:

1、memcached.exe -d install

2、memcached.exe -d start

这里第一步是用于安装服务,第二步是用于启动服务,有些默认参数的值是通过memcached.ini里的相关元素的设置值而定的。

如果要停止服务和卸载服务可以用入下命令:

3、memcached.exe -d stop 或 memcached.exe -d shutdown

4、memcached.exe -d uninstall

命令参数解释:

-d 以守护程序(daemon)方式运行 memcached

-m 设置 memcached 可以使用的内存大小,单位为 M

-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数

-p 设置监听的端口,默认为 11211,所以也可以不设置此参数

-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户

-h 帮助

memcached.ini文件指定的各参数及值可以根据需要做更改,默认的如下:

bind_addr=127.0.0.1
listener_port=11212
memory=16
max_conns=1024

evict_to_free = 0

说明:

bind_addr是指绑定的IP

listener_port是指监听的端口

memory内存大小

max_conns最大连接数

evict_to_free

在通过命令 memcached.exe -d start 将服务启动后,可以通过一个demo来做测试,这个demo的下载地址如下:

http://www.whalin.com/memcached/#download

运行类com.danga.MemCached.test.TestMemcached前将服务IP和监听端口改为启动服务时所用的IP和监听端口,

如:String[] servers = { "127.0.0.1:11212"};

或者可以用如下的Test类做测试

java 代码
  1. package com.danga.MemCached.test;       
  2.       
  3. import java.util.Date;       
  4.       
  5. import com.danga.MemCached.MemCachedClient;       
  6. import com.danga.MemCached.SockIOPool;       
  7.       
  8.       
  9. public class Test {           
  10.     protected static MemCachedClient mcc = new MemCachedClient();          
  11.           
  12.     static {          
  13.         String[] servers ={"127.0.0.1:11212"};          
  14.           
  15.         Integer[] weights = { 3 };          
  16.           
  17.         //创建一个实例对象SockIOPool        
  18.         SockIOPool pool = SockIOPool.getInstance();          
  19.           
  20.         // set the servers and the weights       
  21.         //设置Memcached Server       
  22.         pool.setServers( servers );          
  23.         pool.setWeights( weights );          
  24.           
  25.         // set some basic pool settings          
  26.         // 5 initial, 5 min, and 250 max conns          
  27.         // and set the max idle time for a conn          
  28.         // to 6 hours          
  29.         pool.setInitConn( 5 );          
  30.         pool.setMinConn( 5 );          
  31.         pool.setMaxConn( 250 );          
  32.         pool.setMaxIdle( 1000 * 60 * 60 * 6 );          
  33.           
  34.         // set the sleep for the maint thread          
  35.         // it will wake up every x seconds and          
  36.         // maintain the pool size          
  37.         pool.setMaintSleep( 30 );          
  38.           
  39. //        Tcp的规则就是在发送一个包之前,本地机器会等待远程主机       
  40. //        对上一次发送的包的确认信息到来;这个方法就可以关闭套接字的缓存,       
  41. //        以至这个包准备好了就发;       
  42.         pool.setNagle( false );          
  43.         //连接建立后对超时的控制       
  44.         pool.setSocketTO( 3000 );       
  45.         //连接建立时对超时的控制       
  46.         pool.setSocketConnectTO( 0 );          
  47.           
  48.         // initialize the connection pool          
  49.         //初始化一些值并与MemcachedServer段建立连接       
  50.         pool.initialize();       
  51.                   
  52.           
  53.         // lets set some compression on for the client          
  54.         // compress anything larger than 64k          
  55.         mcc.setCompressEnable( true );          
  56.         mcc.setCompressThreshold( 64 * 1024 );          
  57.     }          
  58.               
  59.     public static void bulidCache(){          
  60.         //set(key,value,Date) ,Date是一个过期时间,如果想让这个过期时间生效的话,这里传递的new Date(long date) 中参数date,需要是个大于或等于1000的值。       
  61.         //因为java client的实现源码里是这样实现的 expiry.getTime() / 1000 ,也就是说,如果 小于1000的值,除以1000以后都是0,即永不过期       
  62.         mcc.set( "test""This is a test String" ,new Date(10000));   //十秒后过期       
  63.                  
  64.     }          
  65.          
  66.     public static void output() {          
  67.         //从cache里取值       
  68.         String value = (String) mcc.get( "test" );          
  69.         System.out.println(value);           
  70.     }          
  71.               
  72.     public static void main(String[] args){          
  73.         bulidCache();         
  74.         output();              
  75.     }        
  76.           
  77. }  


 应用memcached的一个心得:

1、客户端在与 memcached 服务建立连接之后,进行存取对象的操作,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。

2、当存入cached的数据超过了cached的容量后会将最长时间没调用的对象挤出,这正好应征了cached的特征。

3、利用memcached常用的做法:在每取得一次cached对象后,重新设置这个对象的cache时间,这样能够使得经常被调用的对象可以长期滞留在缓存中,使得效率增倍。

  • windows.rar (2.5 MB)
  • 描述: 用于在windows下启动memcached服务
  • 下载次数: 820
分享到:
评论
2 楼 litide 2010-09-03  
安装是挺简单的 呵呵!
1 楼 chenjf2k 2007-12-11  
very good!

相关推荐

    memcached for Win32/x64服务器(袋鼠图标,版本是1.4.13)

    MemCached For Win32 服务器(高洛峰老师讲课那种) p 监听的端口 l 连接的IP地址 默认是本机 d start 启动memcached服务 d restart 重起memcached服务 d stop|shutdown 关闭正在运行的memcached服务 d ...

    memcached for win32 1.2.6

    **memcached for Win32 1.2.6 知识点详解** Memcached是一款高性能、分布式的内存对象缓存系统,它最初是为了解决Web应用动态内容高速缓存的问题而设计的。在Windows平台上,尽管memcached主要被开发用于Unix/Linux...

    memcached for Win32/x64服务器

    "memcached for Win32/x64服务器" 指的是一个针对Windows操作系统的memcached服务端软件,它适用于32位(Win32)和64位(x64)架构的计算机环境。memcached是一款开源的、高性能、分布式内存对象缓存系统,它能够...

    memcached For Win32

    Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户...

    memcached-1.4_for_win32_win64

    **memcached-1.4_for_win32_win64** `memcached` 是一个高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。它通过在内存中存储数据,使得频繁访问的数据能够快速获取...

    win32/64版Memcached1.4.13 For win32 win64

    windows32位和windows64位Memcached V1.4.13

    memcached for window32

    1. **memcached_win32_1.4.5**: 这是主要的安装文件,包含编译好的Windows 32位版本的memcached二进制程序。这个文件夹可能包含以下内容: - `memcached.exe`: 实际的memcached服务执行文件。 - `libevent.dll`: ...

    memcached win32 or win64版本

    **Memcached for Windows: Win32 and Win64 Explained** Memcached 是一款高效、分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用性能。它通过存储经常访问的数据到内存中,使得应用程序可以快速获取...

    memcached-1.2.1-win32下载及安装方法

    sc create Memcached binPath= "C:\Program Files\memcached-1.2.1-win32\memcached.exe" -d runas=LocalSystem ``` 这会创建一个名为 "Memcached" 的服务,并指定 `memcached.exe` 作为执行文件。`-d` 参数表示...

    memcached-win32-1.4.4-14

    "memcached-win32-1.4.4-14" 这个标题表明我们正在处理的是一个适用于Windows 32位系统的memcached版本,具体是1.4.4版的第14次迭代。Memcached是一款高性能、分布式的内存对象缓存系统,它用于在动态系统中减少...

    memcached win32-1.4.4-14

    此外,由于Memcached是用C语言编写的,因此你需要一个C编译器来编译源代码,或者下载预编译的二进制版本,就像“memcached-win32-1.4.4-14”这样的包。 **安装与配置** 1. **下载与解压**:首先,从官方网站或可靠...

    Memcached使用手册

    下载Memcached for Win32 为了在Windows平台上运行Memcached服务,需要从以下两个链接之一下载适合的版本: - 从[Jehiah.cz](http://jehiah.cz/projects/memcached-win32/)下载适用于版本1.2.1的Memcached。 - 从...

    memcached for windows

    题目中提到的`memcached-1.2.1-win32`是适用于Windows 32位系统的memcached版本。你需要首先从可靠的源获取该软件包,例如官方网站或镜像站点。确保选择与你的系统架构匹配的版本(Windows 64位系统需要64位版本)...

    memcached-1.4.2_win64_win32.rar

    这个“memcached-1.4.2_win64_win32.rar”文件是专为Windows平台编译的版本,支持64位和32位操作系统。 **系统需求** 在安装和使用memcached之前,确保你的Windows系统满足以下要求: 1. 操作系统:兼容Windows 64...

Global site tag (gtag.js) - Google Analytics