写了个测试程序,测试redis和memcached的一些性能,Redis的客户端我用的是Jedis,memcached的客户端用的是memcached-cient ,测试程序很简单,主要是想看看在读写一定数量的数据时两个框架所表现出来的性能如何。代码如下:
redis
package com.ht;
import redis.clients.jedis.Jedis;
public class JedisTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String serverIp = "192.168.83.1";
int port = 6379;
Jedis jedis = new Jedis(serverIp, port);
jedis.connect();
int num = 1000;
long t1 = System.currentTimeMillis();
for(int i=0;i<num;i++){
jedis.set(""+i, "hello "+i);
}
long t2 = System.currentTimeMillis();
System.out.println("使用Redis set "+num+"条记录所花的时间:"+(t2-t1)+" ms");
for(int i=0;i<num;i++){
jedis.get(""+i);
}
long t3 = System.currentTimeMillis();
System.out.println("使用 Redis get "+num+"条记录所花的时间:"+(t3-t2)+" ms");
}
}
memcached:
package com.ht;
import com.alisoft.xplatform.asf.cache.memcached.client.MemCachedClient;
import com.alisoft.xplatform.asf.cache.memcached.client.SockIOPool;
public class TestMemcached {
public static void main(String[] args) {
String[] server = {"192.168.83.1:12345"};
//初始化SockIOPool,管理memcached连接池
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(server);
pool.setFailover(true);
pool.setInitConn(10);
pool.setMinConn(5);
pool.setMaxConn(100);
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(true);
pool.initialize();
//建立memcachedclient 对象
MemCachedClient client = new MemCachedClient();
int num =1000;
long t1 = System.currentTimeMillis();
for(int i=0;i<num;i++){
client.set(""+i, "hello "+i);
}
long t2 = System.currentTimeMillis();
System.out.println("使用Memcached set "+num+"条记录所花的时间:"+(t2-t1)+" ms");
for(int i=0;i<num;i++){
client.get(""+i);
}
long t3 = System.currentTimeMillis();
System.out.println("使用Memcached get "+num+"条记录所花的时间:"+(t3-t2)+" ms");
// for(int i=0;i<100;i++){
// /*将对象加入到memcached缓存*/
// boolean success = client.set("" + i, "Hello!");
// /*从memcached缓存中按key值取对象*/
// String result = (String) client.get("" + i);
// System.out.println(String.format("set( %d ): %s", i, success));
// System.out.println(String.format("get( %d ): %s", i, result));
//
// }
//
// for(int i=0;i<10;i++){
// client.delete(""+i);
// }
}
}
测试结果如下:
100000条数据
Redis:
使用Redis set 100000条记录所花的时间:31663 ms
使用 Redis get 100000条记录所花的时间:31518 ms
Memcached:
使用Memcached set 100000条记录所花的时间:23847 ms
使用Memcached get 100000条记录所花的时间:23080 ms
10000条数据
使用Redis set 10000条记录所花的时间:3354 ms
使用 Redis get 10000条记录所花的时间:3308 ms
memcached:
使用Memcached set 10000条记录所花的时间:2466 ms
使用Memcached get 10000条记录所花的时间:2366 ms
1000条数据:
使用Redis set 1000条记录所花的时间:415 ms
使用 Redis get 1000条记录所花的时间:356 ms
使用Memcached set 1000条记录所花的时间:376 ms
使用Memcached get 1000条记录所花的时间:291 ms
从测试结果来看memcached的读写性能在一定程序上确实要优于redis,当然,这也是预料之中的,memcached的所有数据都缓存在内存中,redis的数据也是存储在内存中,同时也会异步的存储在本地磁盘中。
分享到:
相关推荐
memcached,redis性能测试,内存缓存系统的性能测试;
不光有含金量,还很有颜值。 Redis-vs-Memcached-Infographic-ScaleGrid-Blog
memcache redis tair 性能测试报告,精心准备的常用缓存工具的性能测试报告,非常详细
memcachedredis性能测试.docx
memcached-redis性能测试
2、Redis 相比 memcached 有哪些优势? 3、Redis 支持哪几种数据类型? 4、Redis 主要消耗什么物理资源? 5、Redis 的全称是什么? 6、Redis 有哪几种数据淘汰策略? 7、Redis 官方为什么不提供 Windows 版本? 8、...
Redis 是一个高性能的key-value数据库。...性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stackoverflow 网站使用 Redis 做为缓存服务器。
Redis RHEL6 X64 RPM。...性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stackoverflow 网站使用 Redis 做为缓存服务器。
性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stackoverflow 网站使用 Redis 做为缓存服务器。 Redis 在 CentOS 下的启动脚本请看这里。
缓存策略:在合适的地方引入缓存机制(如Redis、Memcached)提高系统性能。 分页与批量处理:对于大数据量的处理,采用分页或流式处理,减轻服务器压力。 服务化架构:采用微服务架构,将复杂系统拆分为多个独立可...
性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stackoverflow 网站使用 Redis 做为缓存服务器。 Redis 在 CentOS 下的启动脚本请...
分布式缓存:系统使用分布式缓存,如Redis、Memcached等,提高系统的访问速度和性能,减轻数据库的压力。 异步消息处理:系统利用消息队列,如Kafka、RabbitMQ等,实现异步消息处理,如订单支付结果通知、库存变更...
redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key...性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stack
网站的性能测试 不同的视角 用户的视角 开发人员的视角 运维人员的视角 性能测试指标 响应时间 并发数 吞吐量 性能测试方法 性能测试 负载测试 压力测试 稳定性测试 web 前端...
第47章 后台服务器的健康检测 第48章 使用sticky模块实现粘贴性会话 第49章 Nginx实现对后台服务器实现“公平”访问 第50章 Nginx使用redis数据库 第51章 Nginx访问MongoDB 第52章 Nginx访问Mogilefs 第3部分 ...
第47章 后台服务器的健康检测 第48章 使用sticky模块实现粘贴性会话 第49章 Nginx实现对后台服务器实现“公平”访问 第50章 Nginx使用redis数据库 第51章 Nginx访问MongoDB 第52章 Nginx访问Mogilefs 第3部分 ...
第47章 后台服务器的健康检测 第48章 使用sticky模块实现粘贴性会话 第49章 Nginx实现对后台服务器实现“公平”访问 第50章 Nginx使用redis数据库 第51章 Nginx访问MongoDB 第52章 Nginx访问Mogilefs 第3部分 ...
杨海朝老师介绍 新浪首席DBA ,在大规模高并发、海量访问特别是大规模数据库运维方面有丰富的...第12章:监控、新特性、Memcached、Redis、MongoDB 第13章:MySQL相关问题及面试解答 第14章:MySQL集群与高可用实战