【压测环境】
操作系统: 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
相关推荐
Hash简介 ...1.HSET、HGET 、HMSET、 HMGET HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。 HGET key field 获取存储在哈希表key中指定字段field的值。使用如下: 127.0.0.1:
2. Hash:类似于 Java 的 HashMap,节约存储空间,支持 hset, hmset, hget, hmget 等命令。 3. List:可作为队列或栈,使用 lpush, rpush 添加元素,lpop, rpop 获取元素。 4. Set:无序集合,支持并集、交集等操作...
- `HSET/HMSET`:向哈希表中添加一个或多个字段和值。 - `HGET/HMGET`:获取一个或多个字段的值。 - `HDEL`:删除哈希表中的一个或多个字段。 - `HKEYS/HVALS`:获取所有字段或所有值。 4. **列表(List)** - `...
Redis 是一个高性能的键值数据库,它提供了丰富的数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(ZSet)等。在本篇文章中,我们将聚焦于哈希(Hash)类型,特别是讨论如何在Redis中删除...
1. 性能测试:测试Redis的读写速度,通过大量并发请求评估其处理能力。 2. 内存使用:监控Redis内存使用情况,避免内存溢出。 3. 数据一致性:检查数据在更新后的一致性,如使用多线程并发修改同一数据时的正确性。 ...
var name = redis.HGet("user:1000", "name"); ``` List类型是Redis中基于链表实现的数据结构,它可以存储多个有序的元素。List类型非常适合实现消息队列,用户会话管理等场景。在C#中,我们可以使用如下代码操作...
使用`HSET`和`HGET`系列命令进行操作,非常适合存储对象类型的数据。 3. 列表(List):列表是有序的元素序列,支持在两端(头部或尾部)进行插入和删除。通过`LPUSH`、`RPUSH`、`LPOP`和`RPOP`等命令,可以实现...
hash_value = redis.hget('hash', 'field') # => "value" # 列表操作 redis.lpush('list', 'item1', 'item2') list_items = redis.lrange('list', 0, -1) # => ["item1", "item2"] # 集合操作 redis.sadd('set', '...
`hSet()`, `hGet()`, `hMset()`, `hMget()`等方法可对哈希表进行操作。例如: ```php $redis->hSet('my_hash', 'field1', 'value1'); $value = $redis->hGet('my_hash', 'field1'); $redis->hMset('my_hash', ...
Redis 是一个高性能的键值数据库,它在许多场景下被广泛使用,特别是在缓存、计数、发布/订阅等操作中。"redis 对hash设置expires"这个主题涉及到Redis中的一个关键特性,即如何为哈希(Hash)数据类型设置过期时间...
- Hash:Hash用于存储键值对的集合,HSET/HGET/HMSET/HMGET等命令可进行操作,特别适合存储对象信息。 3. Redis的其他特性 - 事务(Transactions):Redis支持通过MULTI/EXEC命令实现事务,保证一组操作的原子性...
$redis->hSet('hashKey', 'field1', 'value1'); $value = $redis->hGet('hashKey', 'field1'); ``` - 集合操作(Sadd/Srem/Sismember): ```php $redis->sAdd('setKey', 'member1', 'member2'); $redis->sRem('...
* hget命令:在Hash数据中根据field获取对应值 * hmget命令:获取多个field对应的值 * hgetall命令:获取当前Hash数据中所有的键值对 * hkeys命令:获取Hash数据中所有的field * hvals命令:获取当前Hash数据中所有...
redis.hset('hash_key', 'field1', 'value1') value = redis.hget('hash_key', 'field1') redis.hdel('hash_key', 'field1') ``` - 列表(Lists):添加元素到列表两端、获取范围内的元素。 ```ruby redis.lpush('...
- **Map (Hash)**:使用`HSET key field value`添加字段值,`HGET key field`获取字段值,`HGETALL key`获取所有字段和值。 - **Set**:使用`SADD key member`将成员添加到集合,`SMEMBERS key`获取集合的所有成员...
- 哈希操作:`$redis->hSet('hashKey', 'field', 'value')`,`$redis->hGet('hashKey', 'field')`等。 - 集合操作:`$redis->sAdd('setName', 'member')`,`$redis->sMembers('setName')`等。 - 有序集合:`$...
在PHP中,`redis->hSet()`用于设置键值对,`redis->hGet()`用于获取特定键的值,`redis->hGetAll()`则可以获取整个哈希表。 3. 列表(Lists):列表允许在两端添加元素,实现队列或栈的功能。你可以使用`redis->...
5. 性能测试:测量集群在高并发情况下的读写性能,确保性能满足需求。 对于Java端的测试代码,你可能会看到以下类和方法: 1. `RedisSingleServerTest`:用于测试单机模式的Redis,包含连接建立、基本操作和关闭...
Redis的hash类型则允许用户存储键值对的集合,适用于存储对象数据,提供了hset、hget、hmget等操作指令。list类型数据结构可以实现队列和栈的功能,支持从两端推入和弹出元素,相关操作指令包括lpush、rpush、lpop、...