因为memcached只支持String数据类型,所以本文只比较String,redis支持的其他数据类型不做评测,另外关闭了redis持久化特性!因为redis的持久化是另起后台任务进行,所以数据量小的时候不会对测试结果有明显影响。
测试环境:
引用
REDHAT6.0 x86_64
Ruby Enterprise Edition version 1.8.7-2010.02
memcached 1.4.4
redis-2.4.6
Gems:
memcached(1.3.5)
hiredis (0.4.4)
相关配置:
memcached:-m 1024 -c 1024 -t 8
内存:1G,并发连接:1024,线程数:8
redis:默认配置,其中持久化数据部分关闭
loglevel warning
#save 900 1
#save 300 10
#save 60 10000
rdbcompression yes
测试方式:随即生成1000byte内的字符串,写入10万次。
memcached代码:
require 'rubygems'
require 'memcached'
@cache = Memcached.new('localhost:11211')
100000.times do |i|
@cache.set "Test/#{i}", '0'*rand(1000)
end
redis测试代码:
require 'rubygems'
require 'hiredis'
@cache = Hiredis::Connection.new
@cache.connect("127.0.0.1", 6379)
100000.times do |i|
@cache.write ['SET', "Test/#{i}", '0'*rand(1000)]
@cache.read
end
测试结果:
real user sys
memcached 1x SET pipeline 10000 times 0.937s 0.305s 0.376s
redis 1x SET pipeline 10000 times 1.218s 0.517s 0.318s
memcached 10x SET pipeline 10000 times 1.954s 3.311s 1.794s
redis 10x SET pipeline 10000 times 3.578s 5.610s 2.229s
memcached 20x SET pipeline 10000 times 3.724s 6.789s 3.547s
redis 20x SET pipeline 10000 times 7.024s 11.409s 4.259s
memcached 1x SET pipeline 100000 times 8.434s 2.849s 3.165s
redis 1x SET pipeline 100000 times 10.088s 3.315s 2.979s
memcached 10x SET pipeline 100000 times 15.823s 21.094s 14.900s
redis 10x SET pipeline 100000 times 26.971s 20.364s 14.673s
memcached 20x SET pipeline 100000 times 28.992s 42.706s 29.173s
redis 20x SET pipeline 100000 times 50.189s 40.969s 27.939s
memcached 1x SET pipeline 1000000 times 1m16.988s 26.652s 27.189s
redis 1x SET pipeline 1000000 times 1m39.096s 25.127s 28.373s
memcached 10x SET pipeline 1000000 times 2m30.850s 3m22.393s 2m26.716s
redis 10x SET pipeline 1000000 times 4m19.509s 2m46.179s 2m18.871s
memcached 20x SET pipeline 1000000 times 6m22.883s 9m2.995s 6m5.845s
redis 20x SET pipeline 1000000 times 12m55.556s 9m6.064s 6m56.633s
结论:
1、memcached的写入性能还是明显要高于redis,特别是多并发的时候,优势更明显!
2、redis server的占用一般在50%左右,memcached server的CPU占用150%左右
3、从总体CPU占用率上来说,redis的优势很明显,4核CPU的使用率没有超过20%,而memcached的CPU一直在50%左右。
分享到:
相关推荐
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
官方数据显示,它可以在普通Linux系统上实现每秒81000次读取和110000次写入。 - **持久化**:尽管数据存储在内存中,但Redis提供了一种持久化机制,如RDB(定期保存)和AOF(追加日志)。这使得在系统崩溃或重启后...
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类...
Memcached与其他key-value存储系统(如Redis、Voldemort等)相比,在集群支持、性能和应用场景上存在差异。例如,Memcached更适用于读多写少的场景,而Redis则提供了更为丰富的数据类型和持久化选项。 #### 6. ...
- **特点**: memcachedb 结合了memcached的高性能和NoSQL数据库的功能,支持ACID事务。 - **应用场景**: 适用于需要高性能缓存和简单事务支持的应用场景。 ##### 1.1.4 Cassandra - **特点**: Cassandra 是一种...
读写分离的基本思路是将数据读取操作与数据写入操作分开处理,通常通过在不同的服务器上部署专门用于读或写的实例来实现。这种设计可以显著提高系统的整体性能,尤其是在高并发场景下。 1. **数据同步机制**: - ...
Key-Value Store因其简单的数据模型和高效的读写性能,在处理大规模数据方面表现突出。 ##### 1.2.2 云存储 云存储要求系统具有高度的可扩展性和灵活性。Key-Value Store能够轻松地进行水平扩展,适应不断变化的...
1. 分布式缓存支持:库可能兼容多种分布式缓存服务,如Redis、Memcached等,以便于扩展和适应不同的环境需求。 2. 类型和查询级别的缓存:缓存不仅可以针对整个类,还可以根据特定的查询条件进行粒度更细的缓存,以...
`memcached` 相较于 Redis 等其他缓存系统,更注重简单性和高性能,但功能相对较少。在选择缓存系统时,应根据项目需求来决定是否适合使用 `memcached`。 总之,`memcached` 是一款优秀的缓存解决方案,尤其在...