`

redis 简单测试

 
阅读更多

需要使用内存数据库。经过对比 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的简单小测试类,大家有兴趣可以下,里面都是一些常见的用法

    redis简单测试

    初学redis参照网上教程写的一个部分

    springboot 集成封装redis工具类redisUtils和单元测试

    文章是redisUtils工具类的封装,和基于springboot环境的单元测试; 文中封装了redis的众多方法,希望对您有所帮助。

    Redis测试Demo

    Redis 测试Demo,给出一个Redis的读写案例

    springboot连接redis简单示例

    springboot连接redis简单示例。其中含连接redis的dao层和controller层,可以通过页面访问进行测试。

    java_redis简单案例

    此资源为demo测试方法,使用前请安装redis服务。仅供参考

    Redis简易工具.zip

    一款简易版本的Redis工具,主要是用来测试Redis命令的,也可以学习使用,实在没说的了,为什么要大于50字

    StackExchange.Redis 操作 Redis Demo示例

    发现用StackExchange.Redis代替收费项目ServiceStack.Redis是个不错的选择,只有一个dll,并且代码开源,很不错。...代码只做简单演示用StackExchange.Redis操作Redis数据库。 测试写入100万个key用时43秒。

    qt-redis.zip

    qt-redis qtcreator 调用redis接口测试demo 简单易用 内含有qReader.h qredis.h qReadisTest.h qReader.cpp qredis.cpp qReadisTest.cpp

    Redis(一) 简单安装介绍、测试存储

    NULL 博文链接:https://tablemiao.iteye.com/blog/2266175

    springboot-集成redis

    springboot集成redis案列测试案列,简单的项目一看基本就能上手

    Redis学习集合包

    这是我个人这段时间学习Redis的集合,有Redis的简单测试,Redis的Cluster集群、Redis的Sentinel主从集群、Tomcat+Redis的Session存储、还有基于Spring-data-redis的使用。分享出来给大家,下载可以直接使用,快速...

    redis读性能测试.zip

    解压到本地,修改propertie文件中redis的地址和端口,就可直接运行,简单直接可用,可以调整读取的线程个数

    php使用redis在windows下配置方法

    在windows下安装php的redis扩展非常简单,下载一个.dll扩展包放到php的ext目录下,在php.ini里边添加一行配置就可以了. http://ishare.iask.sina.com.cn/f/23044929.html?from=like 下载 php_redis.dll 文件解压并放到...

    用于Go单元测试的Pure Go Redis服务器-Golang开发

    它通过真正的TCP接口实现了简单,廉价,内存中的Redis替换。 可以将其视为net / http / httptest的Redis版本。 它使您免于使用模拟代码,并且由于redis服务器处于测试过程中,因此您可以直接查询值,例如

    spring+redis整合

    利用了spring+redis整合实现了简单的登录,将session交由redis管理,并且可测试nginx负载均衡,一台服务器宕机,勿需重新登陆,可继续操作!

    redis代码示例

    redis测试demo,里面有本人用来做测试服务的redis示例代码;以供同行参考,此代码为简单redis案例示范;如果需要做复杂的则根据自己的需求来进行更改。

    Springboot+mybatis+mysql+redis

    这是一个java WEB小项目,用 Maven Springboot+mybatis+mysql+redis集成的小项目例子,可供新手进行参考学习,数据库是mysql 5.5 ,只是一个简单的小参考例子,测试过可以正常运行

    redis.docx

    2.简单的使用 12 3、Jedis入门 13 一:介绍 14 1.Jedis的官网 14 2.使用 15 3.使用方式 16 二:验证是否可以连接主机 16 1..先写一个小程序测试一下 16 2.程序报错 17 3.cmd下 18 ……………… ……………… ……...

Global site tag (gtag.js) - Google Analytics