- 浏览: 1035878 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
在windows下测试了redis和memcached的性能,如下:
jedis get 20000次的执行时间:1265毫秒
jedis set 20000次的执行时间:1313毫秒
jedis 同时启动60个线程的执行时间:21609毫秒
xmemcached get执行20000次的时间:3219毫秒
xmemcached set 20000次的执行时间:3000毫秒
xmemcached 同时启动60个线程的执行时间:75562毫秒
可以看出redis的性能要好于memcached!
redis代码:
01
|
public
class
Demo {
|
02
|
03
|
public
static
void
main(String[] args)
throws
Exception {
|
04
|
Demo demo =
new
Demo();
|
05
|
demo.test();
|
06
|
}
|
07
|
|
08
|
public
void
test()
throws
Exception {
|
09
|
Jedis jedis =
new
Jedis(
"localhost"
);
|
10
|
jedis.set(
"key"
,
"mykey"
);
|
11
|
|
12
|
long
begin = System.currentTimeMillis();
|
13
|
for
(
int
i=
0
; i<
20000
; i++)
|
14
|
jedis.get(
"key"
);
|
15
|
long
end = System.currentTimeMillis();
|
16
|
System.out.println(
"jedis get20000次的执行时间:"
+ (end - begin) +
"毫秒"
);
|
17
|
|
18
|
begin = System.currentTimeMillis();
|
19
|
for
(
int
i=
0
; i<
20000
; i++)
|
20
|
jedis.set(String.valueOf(i), String.valueOf(i));
|
21
|
end = System.currentTimeMillis();
|
22
|
System.out.println(
"jedis set 20000次的执行时间:"
+ (end - begin) +
"毫秒"
);
|
23
|
|
24
|
begin = System.currentTimeMillis();
|
25
|
Thread t[] =
new
Thread[
60
];
|
26
|
for
(
int
j=
0
; j<t.length; j++) {
|
27
|
t[j] =
new
TestThread();
|
28
|
t[j].start();
|
29
|
}
|
30
|
|
31
|
for
(
int
j=
0
; j<t.length; j++) {
|
32
|
t[j].join();
|
33
|
}
|
34
|
end = System.currentTimeMillis();
|
35
|
System.out.println(
"jedis 启动"
+ t.length +
"个线程的执行时间:"
+ (end - begin) +
"毫秒"
);
|
36
|
}
|
37
|
38
|
class
TestThread
extends
Thread {
|
39
|
40
|
@Override
|
41
|
public
void
run() {
|
42
|
Jedis jedis =
new
Jedis(
"localhost"
);
|
43
|
for
(
int
i=
0
; i<
20000
; i++)
|
44
|
jedis.get(String.valueOf(i));
|
45
|
jedis.disconnect();
|
46
|
}
|
47
|
|
48
|
}
|
49
|
}
|
测试redis的代码时,发现同时启动的线程只能到达63,超过的线程都会失败。
排查很久,发现配置文件中有一句话:it's up to the number of file descriptors the Redis process is able to open.
估计在windows xp下只能到达64,那么还有一个呢?无法得知,查了好久也没有找到和linux下文件描述符想匹配的东西。
xmemcache代码:
01
|
public
class
Demo {
|
02
|
03
|
public
static
void
main(String[] args)
throws
Exception {
|
04
|
Demo demo =
new
Demo();
|
05
|
demo.test();
|
06
|
}
|
07
|
|
08
|
public
void
test()
throws
Exception {
|
09
|
MemcachedClient mc =
new
XMemcachedClient(
"localhost"
,
11211
);
|
10
|
mc.set(
"key"
,
2000
,
"mykey"
);
|
11
|
|
12
|
long
begin = System.currentTimeMillis();
|
13
|
for
(
int
i=
0
; i<
20000
; i++)
|
14
|
mc.get(
"key"
,
1000
);
|
15
|
long
end = System.currentTimeMillis();
|
16
|
|
17
|
System.out.println(
"memcached get执行20000次的时间:"
+ (end - begin) +
"毫秒"
);
|
18
|
|
19
|
begin = System.currentTimeMillis();
|
20
|
for
(
int
i=
0
; i<
20000
; i++)
|
21
|
mc.set(String.valueOf(i),
2000
,String.valueOf(i));
|
22
|
end = System.currentTimeMillis();
|
23
|
System.out.println(
"memcached set 20000次的执行时间:"
+ (end - begin) +
"毫秒"
);
|
24
|
|
25
|
mc.shutdown();
|
26
|
|
27
|
begin = System.currentTimeMillis();
|
28
|
Thread t[] =
new
Thread[
60
];
|
29
|
for
(
int
j=
0
; j<t.length; j++) {
|
30
|
t[j] =
new
TestThread();
|
31
|
t[j].start();
|
32
|
}
|
33
|
|
34
|
for
(
int
j=
0
; j<t.length; j++) {
|
35
|
t[j].join();
|
36
|
}
|
37
|
end = System.currentTimeMillis();
|
38
|
System.out.println(
"memcached 启动"
+ t.length +
"个线程的执行时间:"
+ (end - begin) +
"毫秒"
);
|
39
|
}
|
40
|
41
|
class
TestThread
extends
Thread {
|
42
|
43
|
@Override
|
44
|
public
void
run() {
|
45
|
try
{
|
46
|
MemcachedClient mc =
new
XMemcachedClient(
"localhost"
,
11211
);
|
47
|
for
(
int
i=
0
; i<
20000
; i++)
|
48
|
mc.get(String.valueOf(i),
1000
);
|
49
|
mc.shutdown();
|
50
|
}
|
51
|
catch
(Exception e) {
|
52
|
|
53
|
}
|
54
|
}
|
55
|
|
56
|
}
|
57
|
}
|
发表评论
-
Redis入门教程
2011-07-12 22:08 2198入门教程,仅供菜鸟。 ... -
Redis数据库介绍
2011-07-12 22:07 28351. Redis是什么 这个问题的结果影响了我们怎么用R ... -
redis-sharding – 一个 Redis Proxy【转】
2011-04-28 01:43 1674redis-sharding 是一个由perl写的 Redis ... -
redis 运维实际经验纪录之一【转】
2011-04-26 11:30 1205发表于 2010/05/25 由 ... -
1,250,000,000 Key/Value Pairs in Redis 2.0.0-rc3 on a 32GB Machine【转】
2011-04-26 11:28 933Posted on July 25, 20 ... -
200,000,000 Keys in Redis 2.0.0-rc3【转】
2011-04-26 11:27 998Posted on July 24, 20 ... -
Redis配置文件各项参数说明【转】
2011-04-26 11:00 1663最近一个项目用到Redis ... -
Redis配置主从服务器【转】
2011-04-26 10:31 1295redis配置主从服务器 R ... -
More Redis internals: Tracing a GET & SET【转】
2011-04-26 10:09 1887In my previous article , I too ... -
深入Redis内部-Redis 源码讲解【转】
2011-04-26 10:08 643Redis 作为 NoSQL 数据库的杰出代表,一直广受关注, ... -
redis安装配置及使用【转】
2011-04-26 09:03 16042011-03-27 20:41 http://cod ... -
Redis安装配置【转】
2011-04-26 09:02 2069http://bbs.linuxtone.org/thread ... -
闲聊Redis【转】
2011-04-26 09:00 1180Redis 是一个有趣 的项目,与其把它说成键值存储、键 ... -
redis知识点整理【转】
2011-04-25 22:40 1123xmind做的笔记,可惜只能截图 关键字: ... -
jedis线程池的代码【转】
2011-04-25 22:36 2835备忘:(本机i5的测试数据:redis线程执行时间是:2118 ... -
在多台服务器上简单实现Redis的数据主从复制【转】
2011-04-25 22:27 1248Redis的主从复制功能非常强大,一个mas ter可以拥有 ... -
归档Redis在Windows,linux平台下的安装配置【转】
2011-04-25 22:25 2240为了方便查阅资料,特将网上搜索到的Redis相关安装配置进行归 ... -
Redis在Windows下的使用[转]
2011-04-25 22:24 1172Windows版的Redis可到此处下载,非官方版http:/ ... -
膜拜Redis【转】
2011-04-25 21:14 1006膜拜Redis 2009年06月18 ...
相关推荐
- **数据持久化的重要性**:虽然Redis主要依赖内存存储,但它也提供了数据持久化机制,包括RDB(快照)和AOF(日志)两种方式,确保即使在机器重启或断电情况下也能恢复数据,提高了数据的安全性和可靠性。...
- **稳定性考虑**:为了保持Redis的稳定性和性能,官方选择了专注于主流平台。 #### 8. 一个字符串类型的值能存储最大容量是多少? - **最大容量**:单个字符串类型的值最大可以存储1GB的数据。 #### 9. 为什么...
- **Memcached vs Redis**:对比两者在性能、功能、适用场景上的差异,选择适合项目需求的解决方案。 7. **应用场景** - **Web缓存**:减轻数据库压力,加速动态页面的生成。 - **Session共享**:在分布式环境中...
2. **性能对比**:比较不同服务器软件或配置的性能差异。 3. **压力测试**:模拟高并发场景,检查服务器在极限情况下的稳定性。 总之,ApacheBench是一个强大的工具,帮助我们了解服务器在不同条件下的表现,为优化...
28. **性能优化**:讨论PHP性能优化技巧,如缓存技术(例如Memcached、Redis)、PHP优化配置等。 通过以上知识点的学习,你将能够从零开始掌握PHP编程,理解其核心概念,并具备开发实际Web应用程序的能力。持续学习...