Cassandra代替Redis?
最近用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真的过时了吗
几个问题
- 既然Redis可以持久化,用Redis保存的好友列表是否还需要保存到关系数据库?
- 手机游戏Clash of Clans中的城堡属性、及用户的金币、圣水、奖杯适用用什么数据结构保存?
Cassandra代替Redis?相关推荐
- YugaByte评论:行星级Cassandra和Redis
在我作为数据库应用程序开发人员的几十年中,我从未想到过梦wild以求的是,我可以访问一个事务性的,行星级的,分布式的数据库,甚至比我要比较的许多数据库要少得多. 但是,随着Google Cloud S ...
- 印度版的“大众点评”如何将 Food Feed 业务从 Redis 迁移到 Cassandra
Zomato 是一家食品订购.外卖及餐馆发现平台,被称为印度版的"大众点评".目前,该公司的业务覆盖全球24个国家(主要是印度,东南亚和中东市场).本文将介绍该公司的 Food F ...
- Apache Cassandra 在 Facebook 的应用
谁说 Facebook 弃用 Cassandra?相反 Facebook 拥有全世界最大的单个 Cassandra 集群部署,而且他们对 Cassandra 做了很多性能优化,包括 Cassandra ...
- spring boot 1.5.4 整合redis、拦截器、过滤器、监听器、静态资源配置(十六)
上一篇:spring boot 1.5.4 整合webService(十五) 1 Spring Boot整合redis和缓存 Spring Boot中除了对常用的关系型数据库提供了优秀的自动 ...
- java:Cassandra入门与实战——上
一.数据存储方式和NoSQL 1.1 数据存储方式 互联网时代各种数据存储方式层出不穷,有传统的关系性数据库如:MySQL.Oracle等,:有全文检索框架如:ElasticSearch.Solr:有 ...
- Cassandra在海量数据存储及大型项目案例介绍-part4
Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱等简单格式数据,此后,由于Cassandra良好的可扩展性,被Digg.Twitter等知名Web ...
- Python库全部整理出来了,非常全面
库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...
- 要想进入顶级数据公司,2020年数据科学10大技能帮你加分
过年期间,小编努力学习了一些数据科学技能,作为数据领域的人,最终总会阅读并了解很多很多东西. 数据科学对小编来说,是一种力量,能使企业和利益相关者做出明智的决策,并用数据解决问题. 如今,不是每个技术 ...
- 卸载破解的Navicat!操作所有的数据库靠它就够了!
欢迎关注方志朋的博客,回复"666"获面试宝典 DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议.可以通过官方网站或者 ...
最新文章
- 青龙面板多容器教程、一键多容器
- 第十届蓝桥杯java B组—试题F 特别数的和
- 【通知】有三AI固态硬盘最后一次补货,再增3套视频!
- GPUImage源码解读之GPUImageFramebuffer
- OO第三单元总结:JML
- bzoj4448 SCOI2015 情报传递 message
- Bootstrap3 面板 .panel 容器
- [转载] Python十大装B语法
- 16.2互联网媒体信息讽刺识别
- mysql temp table_新特性解读 | MySQL 8.0 Temptable 引擎介绍
- 天线远场定义_高频电磁仿真软件的选型和评估(天线、雷达、电路与器件、无线电总体等)——探讨分享,思路梳理...
- 简单线性相关系数 r及检验
- 图解PCIE原理(从软件角度)
- 打开速达服务器出现系统通知,速达7000重装后,启动网络版服务器时会提示程序版本与数据库版本不一致...
- windows7 优化:readyboost总结
- 自学编程,十年磨一剑
- 治理通胀首先要控制货币发行
- android驱动wifi芯片,Android驱动——Wlan驱动
- linux .pc,教你摸清 Linux PC 的性能底细?
- TF-IDF的原理概述
热门文章
- android 内核 版本,详解Android获取系统内核版本的方法与实现代码
- dns改成什么网速快_手机速度最快的dns(dns改成114的坏处)
- 160个crakeme之cracking4all.1.exe
- 提高学习效率,你可能需要TA!
- 西门子 S7-1200 与 BL200PN 通信示例
- SQL Server2017安装教程
- 创建型模式-建造者模式(四)
- 小红书前端笔试 题目+解答 2023.3.26
- 移动端开发应注意的事项有哪些?
- html添加js加随机数,javaScript如何添加随机数