`

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简单测试"这一主题的详细说明。 1. **Redis简介** Redis是一个开源(BSD许可),内存中的数据结构存储系统,可以作为数据库、缓存和消息中间件使用。它支持多种数据结构,如字符串、哈希、列表、...

    redis简单小例子(测试类)

    这只是一个redis的简单小测试类,大家有兴趣可以下,里面都是一些常见的用法

    C++ 操作Redis数据库VS2013测试Demo及redis sdk

    【C++操作Redis数据库】 Redis是一个高性能的键值对存储系统,常被用作数据库、缓存和消息中间件。在C++中与Redis交互,通常需要借助客户端库,这里提到的是`hiredis`,这是一个轻量级、高效的纯C语言实现的Redis...

    java连接redis测试

    接下来,我们来看`redis_demo`这个文件,它很可能是一个包含Java代码的类或者一个简单的Java项目。在这个示例中,通常会包含以下几个关键部分: 1. **建立连接**:创建Jedis实例,指定Redis服务器的IP地址和端口号...

    MQ redis测试工具

    这个工具可能包含了命令行界面,用户可以简单地输入频道名和消息内容,然后工具会模拟发送消息到Redis,并展示接收结果。 使用此工具时,需要注意以下几点: 1. **配置连接**:首先,确保你的Redis服务器已经运行...

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

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

    redis 性能测试

    使用Jedis,开发者可以通过简单的Java代码执行Redis的各种操作,例如设置和获取键值、执行pipeline、订阅发布等。 3. **性能测试的目的**:性能测试旨在了解系统的处理能力、响应时间以及在高负载下的稳定性。在...

    Redis性能测试

    在测试中,我们可以创建一个简单的Java程序,使用Jedis库连接Redis、CoolHash(如果有Java API)和SqlServer,执行相同的操作(如set/get),并记录响应时间。比较这些时间可以评估各自的速度。 6. 源码和jar包: ...

    redis 性能测试(读写)

    Jedis 是 Java 开发者常用的 Redis 客户端库,它提供了丰富的 Redis 操作接口,使得在 Java 应用中与 Redis 交互变得简单。 在进行 Redis 的性能测试时,我们通常关注两个关键指标:读操作和写操作的性能。这里的...

    Redis测试Demo

    6. **事务处理**:Redis支持简单的事务,通过`MULTI`、`EXEC`命令组合可以保证一组操作的原子性。 7. **发布/订阅模式**:Redis还提供了发布/订阅(Pub/Sub)功能,可以实现消息传递,适合构建实时消息系统。 8. *...

    redis测试包

    在这个"redis测试包"中,包含了两个重要的Java库:`commons-pool2-2.4.2`和`jedis-2.7.3`,它们是Java开发者在与Redis交互时常用的工具。 `commons-pool2-2.4.2`是Apache Commons Pool的第二版,它是一个对象池设计...

    springmvc整合redis简易Demo.zip

    在本项目"springmvc整合redis简易Demo.zip"中,我们将探讨如何将Spring MVC框架与Redis内存数据存储系统相结合,以实现高效的数据缓存和管理。这个简易Demo是为Java开发者设计的,旨在帮助他们理解并实践Spring MVC...

    redis使用jedis测试

    在本测试环境中,我们将探讨如何利用Jedis进行Redis的基本操作,包括增删等。 首先,我们需要在本地或服务器上安装Redis。`redisbin64.zip`文件可能是Redis的Windows 64位版本,解压后包含可执行文件`redis-server....

    Redis简易工具.zip

    这款“Redis简易工具”是专为测试Redis命令和学习使用而设计的,它简化了与Redis服务器交互的过程,使得开发者能够更便捷地了解和掌握Redis的功能。 首先,Redis支持多种数据结构,包括字符串(Strings)、哈希...

    memcached-redis性能测试.docx

    Memcached 和 Redis 性能测试 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。...

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

    测试Redis的存储功能,我们可以使用Redis自带的命令行客户端`redis-cli`。在终端输入以下命令连接到本地Redis服务器: ```bash redis-cli ``` 连接成功后,可以尝试存储和获取数据。例如,设置一个键值对: ```...

    redis测试.rar

    `redis测试.rar` 文件可能包含了一个针对 Redis 的测试用例或示例代码,用于验证 Redis 模板(Redistemplate)在实际应用中的功能和性能。 `Redistemplate` 是 Spring Data Redis 框架提供的一种简化 Redis 操作的...

    java连接redis的jar包

    Redis支持的数据结构丰富,除了简单的字符串外,还包括哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。Jedis提供了对应的方法来操作这些数据结构,如: - 哈希:`hset`, `hget`, `hgetAll` - ...

    redis tcl 8.6下载

    TCL(Tool Command Language)则是一种简单易学的脚本语言,它在Redis的测试和开发过程中起到了重要作用。`redis tcl 8.6下载` 指的是为了运行Redis的测试,需要获取TCL 8.5或更高版本。 TCL 8.6是TCL的一个重要...

Global site tag (gtag.js) - Google Analytics