在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。

1. Schema

MySQL: 需事先设计
Memcached: 无需设计
Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下一些规划
?数据项: value保存的内容是什么,如用户资料
?Redis数据类型: 如String, List
?数据大小: 如100字节
?记录数: 如100万条(决定是否需要拆分)
???

上面的规划就是一种schema,为什么Redis在大型项目需要事先设计schema?因为Redis服务器有容量限制,数据容量不能超出物理内存大 小,同时考虑到业务数据的可扩充性,记录数会持续增多、单条记录的内容也都会增长,因此需要提前规划好容量,数据架构师就是通过schema来判断当前业 务的Redis是否需要“分库分表”以满足可扩展需求。

2. 容量及带宽规划

容量规划
MySQL: < 硬盘大小
Memcached: < RAM
Redis: < RAM

带宽规划
由于Redis比MySQL快10倍以上,因此带宽也是需要事先规划,避免带宽跑满而出现瓶颈。

3. 性能规划(QPS)

当系统读写出现瓶颈,通常如何解决?
MySQL
写: 拆分到多服务器
读: (1) 拆分 (2) 写少也可以通过增加Slave来解决

Memcached
读写: 都通过hash拆分到更多节点。

Redis:
写:拆分
读: (1) 拆分 (2) 写少也可以通过增加Slave来解决

4. 可扩展性

MySQL: 分库分表
Memcached: hash分布
Redis:也可以分库,也可以hash分布

小结

通过以上分析,Redis在很多方面同时具备MySQL及Memcached使用特征,在某些方面则更像MySQL。
由于Redis数据不能超过内存大小,一方面需要进行事先容量规划,保证容量足够;另外一方面设计上需要防止数据规模无限制增加,进而导致Redis不可扩展。
Redis需要象MySQL一样预先设计好拆分方案。

小问题

在MySQL中,通过预先建立多表或者库可以在业务增长时候将这些表或库一分为二部署到更多服务器上。
在Redis中,“分库分表”应当如何实现?有什么好的设计模式?

Memcached与Redis的一些特点相关推荐

  1. memcached客户端_对比Memcached和Redis,谁才是适合你的缓存?

    Memcached vs Redis 近期公司采购软件,评估时,某软件谈到使用了 Memcached 和 Redis 缓存.在本文中,将研究这两个流行的缓存的异同,方便理解和记忆. 1. Memcac ...

  2. Memcached、Redis OR Tair

    为什么80%的码农都做不了架构师?>>>    一.前言 非关系型数据库(NoSQL = Not Only SQL)的产品非常多,常见的有Memcached.Redis.MongoD ...

  3. 对比Memcached和Redis,谁才是适合你的缓存?

    Memcached vs Redis 近期公司采购软件,评估时,某软件谈到使用了 Memcached 和 Redis 缓存.在本文中,将研究这两个流行的缓存的异同,方便理解和记忆. 1. Memcac ...

  4. Twemproxy -- 针对MemCached与Redis的代理

    Twemproxy -- 针对MemCached与Redis的代理 转载自:http://www.cnblogs.com/shanyou/archive/2012/12/19/2824837.html ...

  5. Memcached与Redis

    2019独角兽企业重金招聘Python工程师标准>>> 1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard ...

  6. 谈谈Memcached与Redis

    转载自   谈谈Memcached与Redis 1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开 ...

  7. Memcached和Redis

    Memcached和Redis作为两种Inmemory的key-value数据库,在设计和思想方面有着很多共通的地方,功能和应用方面在很多场合下(作为分布式缓存服务器使用等)也很相似,在这里把两者放在 ...

  8. 多台tomcat服务的session共享 memcached与redis

    由于tomcat的并发数瓶颈问题,可以说使用tomcat的web应用,几乎都存在session不同步问题. 借鉴网上的资料,我也找时间实验一把. 文中涉及的软件下载和安装,一一略过,想必大家也没必要看 ...

  9. Memcached与Redis有什么区别

    [摘要] Memcached与Redis有什么区别? Redis 和 Memcached 都是基于内存的数据存储系统.Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-valu ...

  10. Memcached与Redis的区别和选择

    一.Memcached简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fi ...

最新文章

  1. system pause in C#
  2. Gluon.vision的几类数据集
  3. android 加载动画效果_这效果炸了,网易云音乐“宇宙尘埃”特效
  4. 电子测量与仪器第四版pdf_固定资产管理系统_资产分类名称(电子和通信测量分析仪器篇)...
  5. 【每天一道算法题】Numeric Keypad
  6. AWS:启动安装了APOC的Neo4j实例
  7. 浅谈推荐系统中的图神经网络
  8. pyquery获取不到网页完整源代码_python动态网页爬取:爬取pexel上的图片
  9. POJ3342 Party at Hali-Bula(树型DP求最大独立集+唯一解判断)
  10. UI控件篇——UIPageControl及其自定义
  11. 计算机与数学专业的就业前景,2019数学与应用数学专业就业前景和就业方向分析...
  12. oracle 获取日期年份
  13. 【数据分析】基于matlab GUI图书管理系统【含Matlab源码 603期】
  14. 测试手机软件打开速度的app,16个软件打开速度测试 iPhoneXS怒胜三星Note9
  15. 演进:如何用练习快速提升技术
  16. 计算机wifi共享怎么设置,电脑怎么共享wifi热点 电脑设置wifi热点教程
  17. 苹果手机测距离_手机传感器怎样运作 手机传感器工作原理【介绍】
  18. java最早的游戏_回忆S60(塞班)年代的JAVA游戏
  19. Tomcat7源码环境搭建
  20. gamemaker学习笔记:截屏

热门文章

  1. 12C OEM 升级13C
  2. html 禁止选中div,css禁止选中_css禁止鼠标选择文本代码
  3. 微信小程序请求封装token
  4. 小梅哥AC620学习记录—UART_EEPROM_part2
  5. 腾讯外包抢5元红包被组长要回!格局决定高度。
  6. swi 指令能用在C语言吗,arm处理器异常处理-swi - zgolee的专栏 - CSDN博客
  7. HCIA 学习笔记 (26-37) 静态路由、RIP、OSPF
  8. 组播路由协议基础——PIM-SM静态RP
  9. 如何下载某个网站的ico图标
  10. [转]如何查看图片的长和宽(尺寸)