Redis和Memcached如何选

云管家chinaygj 2019-08-23

数据存储与数据库 大数据 redis NOSQL memcached 性能 数据库 负载均衡 存储 数据类型

在众多NoSQL产品中,Redis与Memcached是最耀眼的两个明星,哪个更优秀呢?在实际应用时,应该如何选择?本着追本溯源的原则,我们先来看看,NoSQl究竟是要解决什么问题。

它的由来

随着互联网的发展、网民数量和在线时长的增加,一些主流网站经常会遇到超高访问量的情况。这时,使用单个传统数据库,比如MySQL,在遇到性能问题时,就无法有效应对了。优化数据库结构和索引,成为当务之急,为缓解数据库的压力,缓存技术开始被程序员们大量使用。

当访问量进一步增大后,势必要将单台web机器升级为多台,与此同时,Memcached成为了配套的必须。再后来,只读数据库和负载均衡的引入,让架构变的更加完善。当超大规模和超高并发,逐渐成为常态,可以解决大规模数据集合、多重数据种类的NoSQL,开始了非常迅速的发展。

它的定义与主要用途

NoSQL( Not Only SQL ),意为“不仅仅是SQL”,泛指非关系型的数据库。它的应用场景中,通常会有以下五项要求:

  • 数据模型比较简单;
  • 需要灵活性更强的IT系统;
  • 对数据库性能要求较高;
  • 不需要高度的数据一致性;
  • 对于给定key,比较容易映射复杂值的环境。

对比Redis与Memcached

了解了NoSQL的由来,我们具体看看Redis与Memcached具体有哪些不同。

  • 首先比较NoSQL最关注的性能

    由于Redis无法使用多核,在存储大数据(大于100K)时,性能要比Memcached逊色一些。
  • 是否可以持久化

    Redis有两种持久化的方式:RDB(快照)方式和AOF(追加)。由于Memcached的所有的数据都在内存中,它不可以持久化。
  • 支持的数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。而Memcached仅支持key-value类型。
  • 数据一致性

    Redis事务支持比较弱,只能保证事务中的每个操作连续执行。Memcached 在并发场景下,用cas保证一致性
  • 存储的最大值

    Redis的key和value最大都是512MB。而Memcached的key最大为250字节,value最大为1MB。
    

总结

存在的,就是合理的。尺有所长、寸有所短,在真实的场景中,选择最适合的就好。

登录 后评论
下一篇
云攻略小攻
2108人浏览
2019-10-21
相关推荐
为什么使用 Redis及其产品定位
1355人浏览
2016-05-05 15:19:04
VI zabbix
876人浏览
2017-11-27 14:32:00
Redis和Memcache的区别分析
733人浏览
2017-11-22 13:45:00
Memcached在.net中的应用
487人浏览
2015-07-02 23:36:00
Memcache与MySQL并肩作战
722人浏览
2017-11-07 01:19:00
Redis分片(分布式缓存)
1598人浏览
2019-03-05 17:39:27
0
0
0
355