`

Redis Hash 的 HSET、HGET、HMSET、HMGET 性能测试

 
阅读更多

【压测环境】

操作系统: Ubuntu 14.04 LTS

Linux版本: 3.13.0-24-generic x86_64 GNU/Linux

处理器: 4核 AMD Athlon(tm) II X4 640 Processor @ 800MHz

机器内存:共 8GB,已使用 6GB,未使用 2GB,交换区 未使用

Redis版本:2.8.17

Redis内存:500MB

 

【压测结果】

压测原生的 Redis 性能(非Java客户端),结果如下:

hset  hget 都能在 4ms 之内完成,且每秒并发处理量都在 7.5万个请求之上;

hmset  hmget 一次操作两个数据,都能在 5ms 之内完成,且每秒并发处理量都在 7.1万个请求之上。

 

【参考资料】

Benchmarks​: See how fast Redis is in different platforms. (本文档很有价值,建议详细阅读!!!)

 

【详细压测数据】

bert@MS-7641-14102010:/usr/apps/redis/bin$ ./redis-benchmark -r 500000 -n 500000 hset myhash rand_int rand_int rand_int

====== hset myhash rand_int rand_int rand_int ======

500000 requests completed in 6.66 seconds

50 parallel clients

3 bytes payload

keep alive: 1

99.80% <= 1 milliseconds

99.96% <= 2 milliseconds

99.99% <= 3 milliseconds

100.00% <= 3 milliseconds

75108.91 requests per second

 

bert@MS-7641-14102010:/usr/apps/redis/bin$ ./redis-benchmark -r 500000 -n 500000 hget myhash rand_int rand_int

====== hget myhash rand_int rand_int ======

500000 requests completed in 6.62 seconds

50 parallel clients

3 bytes payload

keep alive: 1

99.88% <= 1 milliseconds

99.99% <= 3 milliseconds

100.00% <= 4 milliseconds

100.00% <= 5 milliseconds

100.00% <= 5 milliseconds

75471.70 requests per second

 

bert@MS-7641-14102010:/usr/apps/redis/bin$ ./redis-benchmark -r 500000 -n 500000 hmset myhash rand_int rand_int rand_int rand_int

====== hmset myhash rand_int rand_int rand_int rand_int ======

500000 requests completed in 7.04 seconds

50 parallel clients

3 bytes payload

keep alive: 1

97.18% <= 1 milliseconds

99.89% <= 2 milliseconds

99.96% <= 3 milliseconds

99.99% <= 5 milliseconds

100.00% <= 5 milliseconds

71063.11 requests per second

 

bert@MS-7641-14102010:/usr/apps/redis/bin$ ./redis-benchmark -r 500000 -n 500000 hmget myhash rand_int rand_int rand_int

====== hmget myhash rand_int rand_int rand_int ======

500000 requests completed in 6.82 seconds

50 parallel clients

3 bytes payload

keep alive: 1

99.70% <= 1 milliseconds

99.97% <= 2 milliseconds

99.98% <= 3 milliseconds

99.99% <= 4 milliseconds

100.00% <= 4 milliseconds

73335.29 requests per second

1
0
分享到:
评论

相关推荐

    Redis的五大数据类型之哈希(Hash)的总结

    Hash简介 ...1.HSET、HGET 、HMSET、 HMGET HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。 HGET key field 获取存储在哈希表key中指定字段field的值。使用如下: 127.0.0.1:

    redis数据库1

    2. Hash:类似于 Java 的 HashMap,节约存储空间,支持 hset, hmset, hget, hmget 等命令。 3. List:可作为队列或栈,使用 lpush, rpush 添加元素,lpop, rpop 获取元素。 4. Set:无序集合,支持并集、交集等操作...

    Redis命令参考手册完整版(PDF)

    - `HSET/HMSET`:向哈希表中添加一个或多个字段和值。 - `HGET/HMGET`:获取一个或多个字段的值。 - `HDEL`:删除哈希表中的一个或多个字段。 - `HKEYS/HVALS`:获取所有字段或所有值。 4. **列表(List)** - `...

    redis中hash表内容删除的方法代码

    Redis 是一个高性能的键值数据库,它提供了丰富的数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(ZSet)等。在本篇文章中,我们将聚焦于哈希(Hash)类型,特别是讨论如何在Redis中删除...

    Redis测试

    1. 性能测试:测试Redis的读写速度,通过大量并发请求评估其处理能力。 2. 内存使用:监控Redis内存使用情况,避免内存溢出。 3. 数据一致性:检查数据在更新后的一致性,如使用多线程并发修改同一数据时的正确性。 ...

    c#操作Redis的5种基本类型汇总

    var name = redis.HGet("user:1000", "name"); ``` List类型是Redis中基于链表实现的数据结构,它可以存储多个有序的元素。List类型非常适合实现消息队列,用户会话管理等场景。在C#中,我们可以使用如下代码操作...

    Redis核心数据结构与高性能原理.zip

    使用`HSET`和`HGET`系列命令进行操作,非常适合存储对象类型的数据。 3. 列表(List):列表是有序的元素序列,支持在两端(头部或尾部)进行插入和删除。通过`LPUSH`、`RPUSH`、`LPOP`和`RPOP`等命令,可以实现...

    ruby和redis接口

    hash_value = redis.hget('hash', 'field') # =&gt; "value" # 列表操作 redis.lpush('list', 'item1', 'item2') list_items = redis.lrange('list', 0, -1) # =&gt; ["item1", "item2"] # 集合操作 redis.sadd('set', '...

    PHP Redis开发包.zip

    `hSet()`, `hGet()`, `hMset()`, `hMget()`等方法可对哈希表进行操作。例如: ```php $redis-&gt;hSet('my_hash', 'field1', 'value1'); $value = $redis-&gt;hGet('my_hash', 'field1'); $redis-&gt;hMset('my_hash', ...

    redis 对hash设置expires.rar

    Redis 是一个高性能的键值数据库,它在许多场景下被广泛使用,特别是在缓存、计数、发布/订阅等操作中。"redis 对hash设置expires"这个主题涉及到Redis中的一个关键特性,即如何为哈希(Hash)数据类型设置过期时间...

    Redis系统性介绍.docx

    - Hash:Hash用于存储键值对的集合,HSET/HGET/HMSET/HMGET等命令可进行操作,特别适合存储对象信息。 3. Redis的其他特性 - 事务(Transactions):Redis支持通过MULTI/EXEC命令实现事务,保证一组操作的原子性...

    phpredis-master.zip php中redis扩展库

    $redis-&gt;hSet('hashKey', 'field1', 'value1'); $value = $redis-&gt;hGet('hashKey', 'field1'); ``` - 集合操作(Sadd/Srem/Sismember): ```php $redis-&gt;sAdd('setKey', 'member1', 'member2'); $redis-&gt;sRem('...

    Redis缓存老师笔记第二部分

    * hget命令:在Hash数据中根据field获取对应值 * hmget命令:获取多个field对应的值 * hgetall命令:获取当前Hash数据中所有的键值对 * hkeys命令:获取Hash数据中所有的field * hvals命令:获取当前Hash数据中所有...

    redis-3.0.0.gem

    redis.hset('hash_key', 'field1', 'value1') value = redis.hget('hash_key', 'field1') redis.hdel('hash_key', 'field1') ``` - 列表(Lists):添加元素到列表两端、获取范围内的元素。 ```ruby redis.lpush('...

    本地连接Redis测试

    - **Map (Hash)**:使用`HSET key field value`添加字段值,`HGET key field`获取字段值,`HGETALL key`获取所有字段和值。 - **Set**:使用`SADD key member`将成员添加到集合,`SMEMBERS key`获取集合的所有成员...

    php_redis-2.2.7-5.6

    - 哈希操作:`$redis-&gt;hSet('hashKey', 'field', 'value')`,`$redis-&gt;hGet('hashKey', 'field')`等。 - 集合操作:`$redis-&gt;sAdd('setName', 'member')`,`$redis-&gt;sMembers('setName')`等。 - 有序集合:`$...

    redis.tar.gz

    在PHP中,`redis-&gt;hSet()`用于设置键值对,`redis-&gt;hGet()`用于获取特定键的值,`redis-&gt;hGetAll()`则可以获取整个哈希表。 3. 列表(Lists):列表允许在两端添加元素,实现队列或栈的功能。你可以使用`redis-&gt;...

    Redis单机和集群测试Java端代码.zip

    5. 性能测试:测量集群在高并发情况下的读写性能,确保性能满足需求。 对于Java端的测试代码,你可能会看到以下类和方法: 1. `RedisSingleServerTest`:用于测试单机模式的Redis,包含连接建立、基本操作和关闭...

    Redis入门手册(中文).pdf

    Redis的hash类型则允许用户存储键值对的集合,适用于存储对象数据,提供了hset、hget、hmget等操作指令。list类型数据结构可以实现队列和栈的功能,支持从两端推入和弹出元素,相关操作指令包括lpush、rpush、lpop、...

Global site tag (gtag.js) - Google Analytics