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

(本文主要讨论Redis未启用VM支持情况)

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中,“分库分表”应当如何实现?有什么好的设计模式?

原文链接:http://timyang.net/data/redis-capacity/

转载于:https://www.cnblogs.com/ggjucheng/p/3348273.html

Redis容量及使用规划(转)相关推荐

  1. 关于容量设计、规划、治理 你知多少?

    为什么要容量设计.规划.治理? 前言:系统的处理能力是有限的! 所谓容量,即系统处于最大负载状态或某项指标达到所能接受的最大阈值下对请求的最大处理能力. 设计>>规划>>治理 ...

  2. Redis容量预估工具

    简介 地址:http://www.redis.cn/redis_memory/ 界面: 参数介绍: key 个数:会保存多少个key key长度:key的名字的长度 元素/字段数:一般是集合类型的,里 ...

  3. TechTarget数据库Redis

    2019独角兽企业重金招聘Python工程师标准>>> http://www.searchdatabase.com.cn/topic/redis.htm Redis NoSQL标准缺 ...

  4. Redis资料汇总专题

    原文地址:http://bbs.chinaunix.net/thread-3672734-1-1.html 很多朋友反映,说NoSQLFan上的资料不少,但是要找到自己实用的太难,于是萌生做这样一个专 ...

  5. 关于新浪微博粉丝关注分享消息队列等架构的调研资料

    本文视频演讲配套ppt下载地址:http://download.csdn.net/detail/qq_16885135/9766864 TimYang:杨卫华, 新浪微博技术总监 演讲视频: 大数据时 ...

  6. AboutYun Resources

    about云资源共享 Nosql资源: http://www.aboutyun.com/thread-5655-1-1.html (1)redis安置 (2)RedisAdminUI.zip (3)r ...

  7. 新系统上线如何规划机器容量

    文章目录 以登录系统为例 如何进行垃圾回收器的选择 垃圾回收器设计上的考量 CMS 和 G1 CMS 垃圾回收器的工作机制 如何对各个分区的比例.大小进行规划 什么是 JVM 动态年龄判断规则呢? 应 ...

  8. 面试官问:Redis变慢了,你会怎么排查?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! Redis作为内存数据库,拥有非常高的性能,单个实例的QP ...

  9. Redis为什么变慢了?常见延迟问题定位与分析

    来源:http://kaito-kidd.com/2020/07/03/redis-latency-analysis/ Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右. ...

  10. Redis 越来越慢?常见延迟问题定位与分析

    Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右.但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头 ...

最新文章

  1. python matplotlib二维平面等高线的绘制, plt.contour 与 plt.contourf, plt.clabel和plt.colorbar, plt.xticks([])
  2. 贺TDSQL喜提286万QPS!本文回顾了它的十年锻造之路
  3. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串...
  4. EF Core For MySql查询中使用DateTime.Now作为查询条件的一个小问题
  5. linux环境安装Kafka最新版本 jdk1.8
  6. linux撤销编译,linux重新编译内核
  7. 记录一次svn报错:[Previous operation has not finished; run 'cleanup' if it was interrupted] 的排错过程
  8. 建筑工程计算机实验室简介,计算机实验室简介
  9. WPF中查看PDF文件 - 基于开源的MoonPdfPanel (无需安装任何PDF阅读器)问题汇总
  10. SQLi LABS Less-8
  11. Allegro画焊盘
  12. Citrix XenDesktop 4.0 Setup Wizard crash
  13. Swift - 使用导航条和导航条控制器来进行页面切换并传递数据
  14. JQuery控制div外点击隐藏,div内点击不会隐藏
  15. Win7系统桌面设置便签与备忘录的方法
  16. 硅谷华人天才CEO被开除,是否会有奇迹发生?
  17. linux内核学习(5)山重水复疑无路*
  18. 微信小程序书籍翻页效果
  19. 卡数字怀念的东西:魔方
  20. 狂肝10个月手搓GPU,他们在《我的世界》里面玩《我的世界》

热门文章

  1. uni-app 变量赋值后被实时同步
  2. 结构体转map[string]interface{}的若干方法
  3. Windows下python安装pymyssql报错
  4. 浙大计算机学院陈越老师,浙江大学计算机科学与技术学院导师介绍 陈越
  5. 上海财经大学计算机考研好不好,五所不错的财经类大学,不歧视,不压分,你会考虑吗?...
  6. 代码管理学:代码分堆
  7. Graphics进行局部旋转的办法
  8. MAC读写NTFS移动硬盘的解决办法
  9. new RandomAccessFile有时很耗时间
  10. 不会编程,就不会写测试案例,就不会测试