需要使用内存数据库。经过对比 memcache,redis。其中memcache单个存储对象不能操作1M,是个限制。所以排除。
对redis性能进行测试:
环境(笔记本):cpu:i3,内存:6g,redis win 版 64位
测试:
1 存储1000000个序列化对象,90s;单个hashmap存储:10s(ps:需要在内存中集中存储对象,设置运行参数 -Xms128m -Xmx1024m)
2 存储10000000个序列化对象,1000s;单个hashmap存储:没有测试(分配1g不够用....)。
package com.yhxia.cache; import java.util.HashMap; import java.util.Map; import org.junit.Test; import redis.clients.jedis.Jedis; import com.yhxia.cache.common.People; import com.yhxia.cache.common.SerializeUtil; public class RedisTest { private final int total = 10000000;// 千万 @Test public void saveMapTest() { Jedis jedis = new Jedis("127.0.0.1", 6379); Map<Integer,People> map = new HashMap<Integer,People>(); for (int i = 0; i <= total; i++) { People p = new People(); p.setId(i); p.setName("name_" + i); map.put(i, p); } byte[] sp = SerializeUtil.serialize((HashMap<Integer,People>)map); jedis.set("peoples".getBytes(), sp); } @Test public void saveObjTest() { Jedis jedis = new Jedis("127.0.0.1", 6379); for (int i = 0; i <= total; i++) { People p = new People(); p.setId(i); p.setName("name_" + i); byte[] sp = SerializeUtil.serialize(p); jedis.set((i + "").getBytes(), sp); } } @Test public void getTest() { Jedis jedis = new Jedis("127.0.0.1", 6379); int count = 0; for (int i = 0; i <= total; i++) { People p = (People) SerializeUtil.unserialize(jedis.get((i + "") .getBytes())); if (p != null) count++; } System.out.println("object count:" + count); } }
package com.yhxia.cache.common; import java.io.Serializable; public class People implements Serializable{ private static final long serialVersionUID = 1L; private String name = ""; private int id = 0; public People(){ } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } }
对redis 的配置和启动,不是重点,不做叙述,可以参考:
redis:http://www.cnblogs.com/mejozn/archive/2013/05/05/3061949.html
jedis(java 调用库):http://www.blogways.net/blog/2013/06/02/jedis-demo.html
(其他扩展:https://github.com/xetorthio/jedis http://snowolf.iteye.com/blog/1633196)
相关推荐
这只是一个redis的简单小测试类,大家有兴趣可以下,里面都是一些常见的用法
初学redis参照网上教程写的一个部分
文章是redisUtils工具类的封装,和基于springboot环境的单元测试; 文中封装了redis的众多方法,希望对您有所帮助。
Redis 测试Demo,给出一个Redis的读写案例
springboot连接redis简单示例。其中含连接redis的dao层和controller层,可以通过页面访问进行测试。
此资源为demo测试方法,使用前请安装redis服务。仅供参考
一款简易版本的Redis工具,主要是用来测试Redis命令的,也可以学习使用,实在没说的了,为什么要大于50字
发现用StackExchange.Redis代替收费项目ServiceStack.Redis是个不错的选择,只有一个dll,并且代码开源,很不错。...代码只做简单演示用StackExchange.Redis操作Redis数据库。 测试写入100万个key用时43秒。
qt-redis qtcreator 调用redis接口测试demo 简单易用 内含有qReader.h qredis.h qReadisTest.h qReader.cpp qredis.cpp qReadisTest.cpp
NULL 博文链接:https://tablemiao.iteye.com/blog/2266175
springboot集成redis案列测试案列,简单的项目一看基本就能上手
这是我个人这段时间学习Redis的集合,有Redis的简单测试,Redis的Cluster集群、Redis的Sentinel主从集群、Tomcat+Redis的Session存储、还有基于Spring-data-redis的使用。分享出来给大家,下载可以直接使用,快速...
解压到本地,修改propertie文件中redis的地址和端口,就可直接运行,简单直接可用,可以调整读取的线程个数
在windows下安装php的redis扩展非常简单,下载一个.dll扩展包放到php的ext目录下,在php.ini里边添加一行配置就可以了. http://ishare.iask.sina.com.cn/f/23044929.html?from=like 下载 php_redis.dll 文件解压并放到...
它通过真正的TCP接口实现了简单,廉价,内存中的Redis替换。 可以将其视为net / http / httptest的Redis版本。 它使您免于使用模拟代码,并且由于redis服务器处于测试过程中,因此您可以直接查询值,例如
利用了spring+redis整合实现了简单的登录,将session交由redis管理,并且可测试nginx负载均衡,一台服务器宕机,勿需重新登陆,可继续操作!
redis测试demo,里面有本人用来做测试服务的redis示例代码;以供同行参考,此代码为简单redis案例示范;如果需要做复杂的则根据自己的需求来进行更改。
这是一个java WEB小项目,用 Maven Springboot+mybatis+mysql+redis集成的小项目例子,可供新手进行参考学习,数据库是mysql 5.5 ,只是一个简单的小参考例子,测试过可以正常运行
2.简单的使用 12 3、Jedis入门 13 一:介绍 14 1.Jedis的官网 14 2.使用 15 3.使用方式 16 二:验证是否可以连接主机 16 1..先写一个小程序测试一下 16 2.程序报错 17 3.cmd下 18 ……………… ……………… ……...