memcached 分布式缓存
来源:互联网 发布:知乎石家庄打耳洞 编辑:程序博客网 时间:2024/05/29 08:04
memcached安装: 1.安装memcached首先得安装libevent 我这里安装的是libevent-2.0.18-stable.tar.gz 官网地址:http://libevent.org/
2.下载之后存放在/home/tmp/
3.解压tar -xvf libevent-2.0.18-stable.tar.gz
4.安装 进入cd libevent-2.0.18-stable 执行命令:./configure --prefix=/usr
5.安装命令:make && make install (查看是否成功:ls -al /usr/lib | grep libevent 这个命令是会显示一堆数据哦)
安装memcached
1.下载memcached 官网地址是:http://code.google.com/p/memcached/downloads/list 我选择的版本是:memcached-1.4.13.tar.gz
2.解压 tar -xvf memcached-1.4.13.tar.gz ----> 进入cd memcached-1.4.13
3../configure --with-libevent=/usr
4.安装命令:make && make install(看清过程有没有出错)
5.启动一个memcached 执行命令:/usr/local/bin/memcached -d -m 1024 -u root -l 192.168.75.88 -p 10001 -c 256 -P /home/tmp/memcached.pid
以下是各个参数的解释:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是1024MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址
-p是设置Memcache监听的端口
-c选项是最大运行的并发连接数,默认是1024 (这个看你机器负载的情况来设置)
-P是设置保存Memcache的pid文件,我这里是保存在 /home/tmp/memcached.pid
这里还做了一个分布式 、记得哦 亲们 分布式是在客户端实现,利用客户端自带的hash算法实现存储到不同的服务器上
写了一些简单代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package
nettyproject.com.main;
import
com.danga.MemCached.MemCachedClient;
import
com.danga.MemCached.SockIOPool;
public
class
Test{
private
static
MemCachedClient mem =
new
MemCachedClient(
"pool"
);
static
{
//目前是使用的是sockiopool连接池 还有一种方式是xmemcached方式 俗称memcachedclientbuilder
String[] ips = {
"192.168.75.88:10001"
,
"192.168.75.88:10002"
,
"192.168.75.88:10003"
};
SockIOPool sip = SockIOPool.getInstance(
"pool"
);
//memcached的poolName必须和此name一样
sip.setServers(ips);
sip.setInitConn(
50
);
sip.setMinConn(
50
);
sip.setMaxConn(
500
);
sip.setNagle(
true
);
sip.setHashingAlg(
3
);
sip.initialize();
//调用启动pool方法
}
public
static
void
setMemcached(String key,Object value){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//有很多set方法的重载,各位可以看看java memcahced api
mem.set(key, value);
}
public
static
Object getMem(String key){
return
mem.get(key);
}
public
static
void
main(String[] args) {
Test.setMemcached(
"eclipse"
,
"6.5"
);
Test.setMemcached(
"eclipse1"
,
"6.51"
);
Test.setMemcached(
"eclipse2"
,
"6.52"
);
Test.setMemcached(
"eclipse3"
,
"6.53"
);
Test.setMemcached(
"eclipse4"
,
"6.54"
);
Test.setMemcached(
"eclipse5"
,
"6.55"
);
Test.setMemcached(
"eclipse6"
,
"6.56"
);
Test.setMemcached(
"eclipse7"
,
"6.57"
);
Test.setMemcached(
"eclipse8"
,
"6.58"
);
//使用的是分布式memcached缓存
String s = (String)Test.getMem(
"eclipse"
);
System.out.println(s);
}
}
我这里只有一台服务器,所以我在一台服务器上开了三个memcached进程
执行上面的程序之后,
看官们可以登录到自己的服务器 、使用命令:telnet xxx.xxx.xx.x(ip) port(端口)
使用命令:get key 来查看值
这个分布式有一个很严重的问题、就是其中某一台服务器宕机之后 数据是找不回来的,找了网上的资料看了下 ,说是可以通过magent代理来解决,下次研究下
0 0
- 分布式缓存 - memCached Voldemort
- Memcached-----分布式缓存
- 分布式缓存---Memcached 入门
- 分布式缓存Memcached
- 分布式缓存---Memcached 入门
- 分布式缓存---Memcached 入门
- 分布式缓存系统 Memcached
- Memcached--分布式缓存
- 分布式缓存系统Memcached
- 分布式缓存系统Memcached
- 分布式缓存-Memcached
- 分布式缓存-Memcached
- 分布式缓存memcached原理
- 分布式缓存Memcached详解
- 分布式缓存-Memcached
- 分布式缓存-Memcached
- 分布式缓存Memcached
- memcached 分布式缓存
- WebSocket(肆) 各种操作码
- 如何提高程序的可移植性
- OC之Foundation字符串
- WebSocket(伍) 断开连接
- mac os x 10.10
- memcached 分布式缓存
- 通用GPIO驱动和apk(含jni),支持所有GPIO,支持LED控制,支持友善6410/210开发板,支持安卓2.3/4.0,内核2.6/3.0
- oracle rac数据库的CRSCTL和SRVCTL命令
- 第十六周oj平台(2):有相同数字?
- Android自定义控件之自定义日历控件
- 从一道题看int的存储结构
- AXURE RP7 新特性
- 企业潜在威胁防御新招:“known-good”技术
- 第16周-找出N之内的所有完数