没有合适的资源?快使用搜索试试~ 我知道了~
首页Java开发中的Memcache原理及实现(带书签)
资源详情
资源评论
资源推荐

Java 开发中的 Memcache 原理及实现
Java 开发中的 Memcache 原理及实现
作者:jiaxiaoyuan1204
整理:chaijunkun
来源:http://jiaxiaoyuan1204.blog.163.com/

Java 开发中的 Memcache 原理及实现
一、概述
1. Memcache 是什么
Memcache(Memcached)是集群环境下的缓存解决方案。
Memcache 是 danga.com 的一个项目,最早是为 LiveJournal 服务的,目前全世界不少
人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个
连接,使用非阻塞的网络 IO。它的工作机制是在内存中开辟一块空间,然后建立一个
HashTable,Memcached 自管理这些 HashTable。
Memcache 官方网站:
http://www.danga.com/memcached,更多详细的信息可以来这里了
解。
2. 为什么会有 Memcache 和 memcached 两种名称
其实 Memcache 是这个项目的名称,而 memcached 是它服务器端的主程序文件名,知
道我的意思了吧。一个是项目名称,一个是主程序文件名,在网上看到了很多人不明白,于
是混用了。
3. 如何在 Java 开发中使用 Memcache
在 Java 开发中使用 Memcache,一般要用到以下几个程序:
1) Memcached
该程序用来在 Linux 或 Windows 服务器上建立和管理缓存。
其项目网址为:
http://danga.com/memcached/。
2) Magent
Magent 是一款开源的 Memcached 代理服务器软件,使用它可以搭建高可用性的集群应
用的 Memcached 服务,其项目网址为:
http://code.google.com/p/memagent/。
3) Memcached 客户端程序
至于 Memcached 的客户端程序,一般推荐用 memcached client for java,为什么推荐用
这种客户端,后面会讲到具体的原因,其项目的网址为:
http://github.com/gwhalin/Memcached-Java-Client/。
4)其它程序
i. Libevent
在 Linux 环境下应用 Memcache 时,Memcache 用到了 libevent 这个库,用于 Socket 的
处理,所以还需要安装 libevent。libevent 的最新版本是 libevent-1.4.13。(如果你的系统已经
安装了 libevent,可以不用安装)。
官网:
http://www.monkey.org/~provos/libevent/
下载:
http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
ii. Windows 下的安装程序
Memcache 也可以安装在 Windows 服务器下,安装程序:memcached-1.2.1-win32.zip

Java 开发中的 Memcache 原理及实现
二、服务器端安装
1. 编译安装 libevent
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable/
./configure --prefix=/usr
make && make install
cd ../
2. 编译安装 Memcached
Memcached 的最新版本是 1.4.5,安装包为:memcached-1.4.5.tar.gz。
wget
http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
tar zxvf memcached-1[1].4.5.tar.gz
cd memcached-1.4.5/
./configure --with-libevent=/usr
make && make install
cd ../
3. 编译安装 magent
Magent 的最新版本是 0.6,安装包为:magent-0.6.tar.gz。
mkdir magent
cd magent/
wget http://memagent.googlecode.com/files/magent-0.6.tar.gz
tar zxvf magent-0.5.tar.gz
/sbin/ldconfig
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
make
cp magent /usr/bin/magent
cd ../

Java 开发中的 Memcache 原理及实现
三、启动和结束服务
1. 启动一个 Memcache 的服务器端
进入到 memcached 的安装目录,如:
#cd /usr/local/memcached-1.4.5
# ./memcached -d -m 10 -u root -l 10.11.15.222 -p 12000 -c 256 -P /tmp/memcached.pid
? -d 选项是启动一个守护进程,
? -m 是分配给 Memcache 使用的内存数量,单位是 MB,我这里是 10MB,
? -u 是运行 Memcache 的用户,我这里是 root,
? -l 是监听的服务器 IP 地址,我这里指定了服务器的 IP 地址 10.11.15.222,
? -p 是设置 Memcache 监听的端口,我这里设置了 12000,最 好 是 1024 以上的端口,
? -c 是最大运行的并发连接数,默认 1024,这里设置了 256,按照服务器的负载量来
设定,
? -P 是设置保存 Memcache 的 pid 文件,我这里是保存在/tmp/memcached.pid,
2. 结束一个 Memcache 进程
如果要结束 Memcache 进程,执行:
# kill `cat /tmp/memcached.pid`
? 注意,上面命令中的符号是 `,不是单引号’
也可以启动多个守护进程,不过端口不能重复。
3. 启动 Magent 代理
Magent 已保存到/usr/bin 目录下,可以直接执行该命令。如:
#magent -u root -n 51200 -l 127.0.0.1 -p 12000 -s 127.0.0.1:11211 -s 127.0.0.1:11212 -b
127.0.0.1:11213
命令参数:
? -h this message
? -u uid
? -g gid
? -p port, default is 11211. (0 to disable tcp support)
? -s ip:port, set memcached server ip and port
? -b ip:port, set backup memcached server ip and port
? -l ip, local bind ip address, default is 0.0.0.0
? -n number, set max ...
剩余23页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0