fengyue
memcached应用随笔
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。相信大家对它并不陌生,下面把我最近开发的项目中用到的一个例子分享出来,给大家一起学习。在访问memcached时,通过synchronized实现同步。在需要操作memcached的地方可以很方便地通过类CacheFactory进行。废话少说,直接贴上代码。
1
import
org.apache.log4j.BasicConfigurator;
2
import
org.apache.log4j.Logger;
3
4
5
import
com.danga.MemCached.MemCachedClient;
6
import
com.danga.MemCached.SockIOPool;
7
8
9
/** */
/**
10
* memcache工厂类
11
*
12
*
@author
fengyue
13
* @date Feb 16, 2011
14
*/
15
public
class
CacheFactory
{
16
private
static
final
Logger logger
=
Logger.getLogger(CacheFactory.
class
);
17
private
static
MemCachedClient memcache
=
null
;
18
19
20
public
static
MemCachedClient getCache()
{
21
if
(memcache
==
null
)
{
22
synchronized
(CacheFactory.
class
)
{
23
if
(memcache
==
null
)
24
getInstance();
25
}
26
}
27
28
29
return
memcache;
30
}
31
32
33
private
static
void
getInstance()
{
34
try
{
35
BasicConfigurator.configure();
36
String serverI
=
"
10.185.23.17:13000
"
;
37
String[] servers
=
{ serverI }
;
38
SockIOPool pool
=
SockIOPool.getInstance();
39
pool.setServers(servers);
40
pool.setFailover(
true
);
41
pool.setInitConn(
10
);
42
pool.setMinConn(
5
);
43
pool.setMaxConn(
250
);
44
pool.setMaintSleep(
30
);
45
pool.setNagle(
false
);
46
pool.setSocketTO(
3000
);
47
48
49
pool.initialize();
50
memcache
=
new
MemCachedClient();
51
memcache.add(
"
test
"
,
"
test1111111111111111111
"
);
52
53
54
}
catch
(Exception e)
{
55
logger.debug(
"
failed to init memcache
"
);
56
e.printStackTrace();
57
}
58
}
59
60
61
62
63
public
static
void
main(String[] argvs)
{
64
//
往memcache存入缓存值
65
CacheFactory.getCache().set(
"
myloginkey“,
"
1
"
, new Date(3 * 60 * 60 * 1000));
66
//
取出值
67
CacheFactory.getCache().get(
"
myloginkey
"
);
68
//
删除
69
CacheFactory.getCache().delete(
"
myloginkey
"
);
70
return
;
71
}
72
}
posted on 2011-11-24 14:07
风悦
阅读(1749)
评论(0)
编辑
收藏
引用
所属分类:
Java
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
tomcat使用jdk1.6启动项目的报错
memcached应用随笔
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
导航
C++博客
首页
联系
聚合
管理
统计信息
随笔 - 14
文章 - 0
评论 - 6
Trackbacks - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Android(1)
(RSS)
C/C++(4)
(RSS)
Java(2)
(RSS)
Shader(1)
(RSS)
生活(2)
(RSS)
随笔档案
2012年9月 (3)
2012年8月 (1)
2011年11月 (4)
2011年10月 (1)
2011年8月 (1)
2011年5月 (1)
2011年3月 (3)
文章分类
Android
(RSS)
C/C++
(RSS)
Java
(RSS)
收藏夹
Android(20)
(RSS)
C/C++
(RSS)
GDI/GDI+(3)
(RSS)
Java(2)
(RSS)
搜索
最新评论
1. re: 如何动态加载ActiveX控件
刚好用到,谢谢分享!
--暖宝宝指南
2. re: CString不是线程安全的
std::wstring一样线程不安全,更郁闷的是VS自带的WTL,居然不能在dll函数参数中传来传去,否则内存泄露.boost可以的.
--王继
3. re: CString不是线程安全的
评论内容较长,点击标题查看
--Benjamin
4. re: CString不是线程安全的[未登录]
评论内容较长,点击标题查看
--陈梓瀚(vczh)
5. re: CString不是线程安全的
MFC,STL这种类库一般都不是线程安全的,毕竟内部加锁是会降低效率的
--mtian
阅读排行榜
1. 如何动态加载ActiveX控件(3798)
2. CString不是线程安全的(2889)
3. OGRE资源管理分析(2229)
4. memcached应用随笔(1749)
5. 在Eclipse上调试Android应用程序(1424)
评论排行榜
1. CString不是线程安全的(5)
2. 如何动态加载ActiveX控件(1)
3. 推荐一个视频网站(0)
4. 如何优化网站内部链接(0)
5. 重温一下黄日华的风采(0)
Powered by:
C++博客
Copyright © 风悦