文档章节

Memcached与Redis的性能对比

我爱睡觉
 我爱睡觉
发布于 2017/06/24 16:06
字数 758
阅读 26
收藏 0

最近有个项目需要用no-sql数据库来保存大量的数据,插入和查询都比较频繁,相对而言查询更加频繁。是选择Memcached、还是Redis呢?对Memcached与Redis做个相关测试,就知道了。

Memcached与Redis测试对比:

1)  性能方面:

相同的写入和读取数据次数,key为uuid, value为模拟的终端信息约600字节

        单线程:

    memcached的写入时间要优于redis, 而redis的读取时间优于memcached

                           20000次写入数据,memcached写入时间约为9000,msredis写入时间约为13000ms

                           20000次读取数据,memcached读取时间约为7000,msredis读取时间约为6000ms

        多线程:

                          redis在低并发的时候比memcached好

60个并发

redis每个线程写入1000次数据,执行总用时约为5000ms;Memcached每个线程写入1000次数据,执行总用时约为10000ms

redis每个线程读取1000次数据, 执行总用时约为2000ms ;Memcached每个线程读取1000次数据,执行总用时约为8000ms

2) 内存使用效率:

        如果使用简单的key-value存储,Memcached的内存利用率更高。

而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。

这和应用场景和数据特性有关。

Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘

memcache 存在内存中,分配的内存满后,会按一定的规则删除一些k/v数据(LRU规则)

3)数据操作

        Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,

通常在Memcached 里,你需要将数据拿到客户端来进行类似的修改再set回去。

这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的 GET/SET一样高效。

4)数据持久化和数据同步

Redis支持这两种,会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,在升级或者重启系统后可以再次加载进行使用, 而memcached都不支持

5)分布式

        两者都支持集群 一主多从或者一主一从


总结:两者的性能都比较高,这并不是瓶颈,Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。Redis,具备一定的数据库特征,可以将内存中的数据保持在磁盘中,当对数据的重要性比较高时,重启升级系统,Redis可以通过aof恢复部分数据。

根据以上的分析,建议还是使用redis。


本文转载自:http://blog.csdn.net/rachel_luo/article/details/8807077

我爱睡觉
粉丝 3
博文 2120
码字总数 0
作品 0
南昌
私信 提问
memcached和redis的区别

Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较,总体来看还是比较客观的,现总结如下: 1)性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以...

疯狂的兔子
2015/03/09
178
0
Memcached与Redis(四)

3.2 Redis和Memcached的集群实现机制对比 Memcached是全内存的数据缓冲系统,Redis虽然支持数据的持久化,但是全内存毕竟才是其高性能的本质。作为基于内存的存储系统来说,机器物理内存的大...

liujing07
2017/11/12
0
0
memcached pk redis

由于项目的需要,我需要决策使用memcached还是redis。 分享一下我的经验,我需要把原本单点的一个系统改照成非单点,我引入了NGINX很容易实现了,但是原有系统大量使用了SESSION,改造成集群...

SunnyWu
2016/03/24
73
0
Redis和Memcache区别,优缺点对比

1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等。 2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,has...

群星纪元
04/19
17
0
Memcached与Redis(三)

3. Memcached和Redis关键技术对比 作为内存数据缓冲系统,Memcached和Redis均具有很高的性能,但是两者在关键实现技术上具有很大差异,这种差异决定了两者具有不同的特点和不同的适用条件。下...

liujing07
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

崛起于Springboot2.X之5分钟解决单点登陆(53)

SpringBoot2.X心法总纲 1、pom文件依赖 <dependency> <groupId>com.majiaxueyuan</groupId> <artifactId>sso-core</artifactId> <version>1.2.2</version></dependency> 2、......

木九天
19分钟前
16
0
面向对象和面向过程的区别

面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对...

无名氏的程序员
20分钟前
12
0
OpenStack大事记

2010年7月19日,Rackspace、NASA、Citrix、Dell共同开发并发布OpenStack第一个版本。 2011年10月,Rackspace放弃OpenStack控制权,交由一新成立的OpenStack基金会管理。 2012年5月NASA宣布退...

大别阿郎
21分钟前
9
0
面向对象的简单应用—以交通工具(Vehicle)为列

请定义一个交通工具(Vehicle)的类其中有: 属性: 速度(speed)、 体积(size)等,方法:移动(move())、设置速度(setSpeed(int speed))、加速 speedUp()、减速 speedDown()等。最后在测试类 Ve...

INEVITABLE
32分钟前
9
0
通往艺术家之路

通往艺术家之路 并发编程中,开发者往往需要权衡锁的颗粒粗细,锁住的代码块太大呢会导致可能的线程堵塞,锁的颗粒太细呢又会因为频繁地加锁解锁导致系统用户态内核态的转换从而消费很多时间...

StupidZhe
33分钟前
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部