最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例。而这篇百万用户时尚分享网站feed系统扩展实践文章则提到了Fashiolista和Instagram从Redis迁移到Cassandra的案例。考虑到到目前仍然有不少网友在讨论Redis的用法问题,Redis是一个数据库、内存、还是Key value store?以及Redis和memcache在实际场景的抉择问题,因此简单谈下相关区别。

首先,Redis和Cassandra完全是适合不同的使用场景的NoSQL产品。前者是适用小规模内存型的key value或者key list数据,后者适合存储大规模数据。因此这篇文章提到切换主要原因或许还是前期Redis使用场景不合适,在初创公司项目初期,以顺手的工具快速实现功能的做法也可以理解。

Redis的几种使用场景

  • 访问量大
  • key value或者key list数据结构
  • 容量小,可控,可以全部放入内存。由于Redis是单线程设计,因此大value会导致后续的请求一定的堵塞。另外hashset当hgetall时候由于存在遍历操作,也不适合集合太大。如果数据超过单机容量可以使用常规的sharding方法分布到多台机
  • 需持久化的场景

上面四点一般情况下应是必要条件。因此常见网站的用户资料、好友列表就适用用Redis来保存。由于Redis具有memcached所有的特性,也有讨论说memcache是否可以退出了?在以下情况下,我会倾向于选择memcached而非redis

  • 简单无需持久化的key value,比如100字节以下。这种情况下使用memcached空间更节约且维护更简便。
  • 有滚动过期需求,如网站的session,每个新登录的用户定期过期。

相关观点也可参考Memcached真的过时了吗

几个问题

  1. 既然Redis可以持久化,用Redis保存的好友列表是否还需要保存到关系数据库?
  2. 手机游戏Clash of Clans中的城堡属性、及用户的金币、圣水、奖杯适用用什么数据结构保存?

Cassandra代替Redis?相关推荐

  1. YugaByte评论:行星级Cassandra和Redis

    在我作为数据库应用程序开发人员的几十年中,我从未想到过梦wild以求的是,我可以访问一个事务性的,行星级的,分布式的数据库,甚至比我要比较的许多数据库要少得多. 但是,随着Google Cloud S ...

  2. 印度版的“大众点评”如何将 Food Feed 业务从 Redis 迁移到 Cassandra

    Zomato 是一家食品订购.外卖及餐馆发现平台,被称为印度版的"大众点评".目前,该公司的业务覆盖全球24个国家(主要是印度,东南亚和中东市场).本文将介绍该公司的 Food F ...

  3. Apache Cassandra 在 Facebook 的应用

    谁说 Facebook 弃用 Cassandra?相反 Facebook 拥有全世界最大的单个 Cassandra 集群部署,而且他们对 Cassandra 做了很多性能优化,包括 Cassandra ...

  4. spring boot 1.5.4 整合redis、拦截器、过滤器、监听器、静态资源配置(十六)

    上一篇:spring boot 1.5.4 整合webService(十五) 1      Spring Boot整合redis和缓存 Spring Boot中除了对常用的关系型数据库提供了优秀的自动 ...

  5. java:Cassandra入门与实战——上

    一.数据存储方式和NoSQL 1.1 数据存储方式 互联网时代各种数据存储方式层出不穷,有传统的关系性数据库如:MySQL.Oracle等,:有全文检索框架如:ElasticSearch.Solr:有 ...

  6. Cassandra在海量数据存储及大型项目案例介绍-part4

    Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱等简单格式数据,此后,由于Cassandra良好的可扩展性,被Digg.Twitter等知名Web ...

  7. Python库全部整理出来了,非常全面

    库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...

  8. 要想进入顶级数据公司,2020年数据科学10大技能帮你加分

    过年期间,小编努力学习了一些数据科学技能,作为数据领域的人,最终总会阅读并了解很多很多东西. 数据科学对小编来说,是一种力量,能使企业和利益相关者做出明智的决策,并用数据解决问题. 如今,不是每个技术 ...

  9. 卸载破解的Navicat!操作所有的数据库靠它就够了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议.可以通过官方网站或者 ...

最新文章

  1. 青龙面板多容器教程、一键多容器
  2. 第十届蓝桥杯java B组—试题F 特别数的和
  3. 【通知】有三AI固态硬盘最后一次补货,再增3套视频!
  4. GPUImage源码解读之GPUImageFramebuffer
  5. OO第三单元总结:JML
  6. bzoj4448 SCOI2015 情报传递 message
  7. Bootstrap3 面板 .panel 容器
  8. [转载] Python十大装B语法
  9. 16.2互联网媒体信息讽刺识别
  10. mysql temp table_新特性解读 | MySQL 8.0 Temptable 引擎介绍
  11. 天线远场定义_高频电磁仿真软件的选型和评估(天线、雷达、电路与器件、无线电总体等)——探讨分享,思路梳理...
  12. 简单线性相关系数 r及检验
  13. 图解PCIE原理(从软件角度)
  14. 打开速达服务器出现系统通知,速达7000重装后,启动网络版服务器时会提示程序版本与数据库版本不一致...
  15. windows7 优化:readyboost总结
  16. 自学编程,十年磨一剑
  17. 治理通胀首先要控制货币发行
  18. android驱动wifi芯片,Android驱动——Wlan驱动
  19. linux .pc,教你摸清 Linux PC 的性能底细?
  20. TF-IDF的原理概述

热门文章

  1. android 内核 版本,详解Android获取系统内核版本的方法与实现代码
  2. dns改成什么网速快_手机速度最快的dns(dns改成114的坏处)
  3. 160个crakeme之cracking4all.1.exe
  4. 提高学习效率,你可能需要TA!
  5. 西门子 S7-1200 与 BL200PN 通信示例
  6. SQL Server2017安装教程
  7. 创建型模式-建造者模式(四)
  8. 小红书前端笔试 题目+解答 2023.3.26
  9. 移动端开发应注意的事项有哪些?
  10. html添加js加随机数,javaScript如何添加随机数