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
Redis Hash 的 HSET、HGET、HMSET、HMGET 性能测试的更多相关文章
- Redis(五):hash/hset/hget 命令源码解析
Redis作为nosql数据库,kv string型数据的支持是最基础的,但是如果仅有kv的操作,也不至于有redis的成功.(memcache就是个例子) Redis除了string, 还有hash ...
- redis hash数据类型
我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Age等.如果H ...
- redis hash map
redis hash的使用详见文章:http://www.miaoyueyue.com/archives/235.html hash操作命令如下: hset(key, field, value):向名 ...
- ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象
http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value (存一个对象的时候key存) 将哈希 ...
- Redis hash数据类型操作
Redis hash是一个string类型的field和value的映射表.一个key可对应多个field,一个field对应一个value.将一个对象存储 为hash类型,较于每个字段都存储成str ...
- Redis hash 类型及操作
原文:http://blog.sina.com.cn/s/blog_5f044a4d0102v01k.html Redis hash是一个string类型的field和value的映射表.它的添加.删 ...
- Redis学习第三课:Redis Hash类型及操作
Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是O(1)(平均).hash特别适用于存储对象.相较于对象的每个字段存在单个string类型.将一个对象 ...
- Python --Redis Hash操作
一.Redis Hash操作 Redis 数据库hash数据类型是一个string类型的key和value的映射表,适用于存储对象.Redis 中每个 hash 可以存储 232 - 1 键值对(40 ...
- Redis hash(哈希)
Redis hash可储存多个键值对,适合储存对象的属性. 1.hset key fieldName fileValue //hset即hash set,set这里是设置的意思.往hash中添加 ...
随机推荐
- Universal-Image-Loader(android图片缓存)
转载请注明http://write.blog.csdn.net/postedit?ref=toolbar 点击下载所需jar文件 具体资料整理请加群284568173自行下载pdf 项目介绍: And ...
- MySQL 基础 —— 字符串处理
1. 字符串截取 MySQL 字符串截取函数 常见的 MySQL 截取函数有: LEFT(), RIGHT(), SUBSTRING(), SUBSTRING_INDEX() SUBSTRING() ...
- 使用Github做服务器展示前端页面
1)在github上创建自己一个项目,项目名称必须是你的github账号名.github.io 譬如 fk123456.github.io 因为我已经创建了,所以显示名字重复. 2)使用命令行的方式 ...
- 取消VS2017窗口置顶
今天打开VS2017,莫名其妙窗口置顶了,百度了一下如何取消窗口置顶,就是Ctrl+Alt+Esc组合键,就可以取消窗口置顶了,至于到底怎么会突然置顶的我也不知道emmm... /********** ...
- js动态追加的元素如何触发事件
一般通过js或者jQuery动态添加的元素标签,通过该元素标签.class.id触发事件,是无效的.如下所示: <body> <input type="text" ...
- TypeError: Object function (req, res, next) { app.handle(req, res, next); } has no method 'configure'
TypeError: Object function (req, res, next) { app.handle(req, res, next); } has no method 'configure ...
- Django学习案例一(blog):六. 开发博客内容页面
目标:某条博客具体内容的展示,可返回博客主页面,可进行评论. 1. 编辑路由 一篇博客,要将其找出来,就需要有一个唯一的标识.Django 的模型中默认有一个唯一的且未自增长的主键,即 id 字段.我 ...
- Unity引擎GUI之Slider和Scrollbar
Slider(滑动条):是一个主要用于形象的拖动以改变目标值的控件,他的最恰当应用是用来改变一个数值,最大值和最小值自定义,拖动滑块可在此之间改变,例如改变声音大小. Scrollbar(滚动条):是 ...
- 【PostgreSQL-9.6.3】如何实现非自动提交
我们在使用psql工具操作数据库时,事务是自动提交的.也就是说,当我们执行完一条insert或者delete语句后,在不输入commit情况下,这条语句也是提交的.如果不想自动提交,可以使用以下两种方 ...
- 【PostgreSQL-9.6.3】log参数的设置
编辑数据目录中的postgresql.conf参数文件,我的数据目录是/usr/local/pgsql/data vi postgresql.conf 找到如下内容: ... #----------- ...