memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营

沙海 2021年3月25日04:15:29杂谈 Java评论109字数 4460阅读14分52秒阅读模式
摘要

速读摘要

速读摘要文章源自JAVA秀-https://www.javaxiu.com/6663.html

说到缓存技术,只要有一定经验的开发人员,肯定会想到redis和memcached这两个。并且在BAT里,redis已经逐渐取代了memcached,成为分布式场景广泛使用的缓存方案。文章源自JAVA秀-https://www.javaxiu.com/6663.html

原文约 3090 | 图片 0 | 建议阅读 7 分钟 | 评价反馈文章源自JAVA秀-https://www.javaxiu.com/6663.html

程序员大本营 技术文章内容聚合第一站文章源自JAVA秀-https://www.javaxiu.com/6663.html

首页 /联系我们 /版权申明 /隐私条款文章源自JAVA秀-https://www.javaxiu.com/6663.html

文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景

1.mongodb 端口(27017)文章源自JAVA秀-https://www.javaxiu.com/6663.html

(1)是文档型的非关系型数据库,使用bson结构。其优势在于查询功能比较强大,能存储海量数据,缺点是比较消耗内存。文章源自JAVA秀-https://www.javaxiu.com/6663.html

(2)一般可以用来存放评论等半结构化数据,支持二级索引。 适合存储json类型数据,不经常变化。文章源自JAVA秀-https://www.javaxiu.com/6663.html

优点:文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  文档结构的存储方式,能够更便捷的获取数据文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  内置GridFS,支持大容量的存储文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  内置Sharding,分片简单文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  海量数据下,性能优越文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  支持自动故障恢复(复制集)文章源自JAVA秀-https://www.javaxiu.com/6663.html

缺点:文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  不支持事务操作文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  占用空间过大文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  MongoDB没有如MySQL那样成熟的维护工具文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  无法进行关联表查询,不适用于关系多的数据文章源自JAVA秀-https://www.javaxiu.com/6663.html

l  复杂聚合操作通过mapreduce创建,速度慢文章源自JAVA秀-https://www.javaxiu.com/6663.html

| 模式自由,  自由灵活的文件存储格式带来的数据错误文章源自JAVA秀-https://www.javaxiu.com/6663.html

应用场景:文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

2.redis 端口(6379)文章源自JAVA秀-https://www.javaxiu.com/6663.html

(1)是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是读写性能高。文章源自JAVA秀-https://www.javaxiu.com/6663.html

(2)redis是内存型KV数据库(键值存储数据库,其数据按照键值对的形势进行组织、索引、存储),不支持二级索引,支持list,set等多种数据格式。适合存储全局变量,适合读多写少的业务场景。很适合做缓存。文章源自JAVA秀-https://www.javaxiu.com/6663.html

优点:文章源自JAVA秀-https://www.javaxiu.com/6663.html

1.支持多种数据类型 string、list、set、zset、hash,文章源自JAVA秀-https://www.javaxiu.com/6663.html

2.数据可以持久化保持(AOF、快照),写入硬盘,文章源自JAVA秀-https://www.javaxiu.com/6663.html

3.支持灾难恢复,主从复制。主机会自动将数据同步到从机,可以进行读写分离。文章源自JAVA秀-https://www.javaxiu.com/6663.html

4.读写性能优异。文章源自JAVA秀-https://www.javaxiu.com/6663.html

缺点:文章源自JAVA秀-https://www.javaxiu.com/6663.html

1.redis不支持自动容错和恢复功能,主从当机都会导致前端读写失败,需手动前端Ip或者机器重新启动文章源自JAVA秀-https://www.javaxiu.com/6663.html

2.主机宕机,主从数据复制过程中,数据未完全复制到从机。会出现数据不一致。文章源自JAVA秀-https://www.javaxiu.com/6663.html

3.redis较难支持在线扩容,当集群数据达到上限在线扩容变得复杂。文章源自JAVA秀-https://www.javaxiu.com/6663.html

应用场景:文章源自JAVA秀-https://www.javaxiu.com/6663.html

1.配合关系型数据库做高速缓存文章源自JAVA秀-https://www.javaxiu.com/6663.html

2.缓存高频次数据,降低数据库io文章源自JAVA秀-https://www.javaxiu.com/6663.html

3.分布式架构,做session共享文章源自JAVA秀-https://www.javaxiu.com/6663.html

例子:比如微信token每两小时刷新一次,就比较适合用redis存储,读也比较方便;文章源自JAVA秀-https://www.javaxiu.com/6663.html

在线游戏排行榜;计时达到一定时间后显示相关广告;按照用户投票和时间排序,更新新闻;文章源自JAVA秀-https://www.javaxiu.com/6663.html

统计在某段特点时间里有多少特定用户访问了某个特定资源,统计哪些特定用户访问了某篇的文章;文章源自JAVA秀-https://www.javaxiu.com/6663.html

3.Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。文章源自JAVA秀-https://www.javaxiu.com/6663.html

端口(11211)文章源自JAVA秀-https://www.javaxiu.com/6663.html

优点:文章源自JAVA秀-https://www.javaxiu.com/6663.html

 一.部分容灾文章源自JAVA秀-https://www.javaxiu.com/6663.html

假设只用一台memcache,如果这台memcache服务器挂掉了,那么请求将不断的冲击数据库,这样有可能搞死数据库,从而引发”雪崩“。如果使用多台memcache服务器,由于memcache使用一致性哈希算法,万一其中一台挂掉了,部分请求还是可以在memcache中命中,为修复系统赢得一些时间。文章源自JAVA秀-https://www.javaxiu.com/6663.html

 二.容量问题文章源自JAVA秀-https://www.javaxiu.com/6663.html

一台memcache服务器的容量毕竟有限,可以使用多台memcache服务器,增加缓存容量。文章源自JAVA秀-https://www.javaxiu.com/6663.html

 三.均衡请求文章源自JAVA秀-https://www.javaxiu.com/6663.html

使用多台memcache服务器,可以均衡请求,避免所有请求都冲进一台memcache服务器,导致服务器挂掉。文章源自JAVA秀-https://www.javaxiu.com/6663.html

四.利用memcache分布式特性文章源自JAVA秀-https://www.javaxiu.com/6663.html

使用一台memcache服务器,并没有利用memcache的数据分布式特性。文章源自JAVA秀-https://www.javaxiu.com/6663.html

 文章源自JAVA秀-https://www.javaxiu.com/6663.html

缺点:文章源自JAVA秀-https://www.javaxiu.com/6663.html

1.不能持久化存储文章源自JAVA秀-https://www.javaxiu.com/6663.html

   2.存储数据有限制:1M 【大于1M,认为就行分割】(内存碎片)文章源自JAVA秀-https://www.javaxiu.com/6663.html

   3.mm存储数据只能key-value文章源自JAVA秀-https://www.javaxiu.com/6663.html

   4.集群数据没有复制和同步机制 【崩溃不会影响程序,会从数据库中取数据】文章源自JAVA秀-https://www.javaxiu.com/6663.html

   5.内存回收不能及时  LRU(算法):未使用内存》过期内存》最近最少使用内存   这是惰性删除文章源自JAVA秀-https://www.javaxiu.com/6663.html

 文章源自JAVA秀-https://www.javaxiu.com/6663.html

应用场景:文章源自JAVA秀-https://www.javaxiu.com/6663.html

1.分布式应该,文章源自JAVA秀-https://www.javaxiu.com/6663.html

2.数据库前段缓存,文章源自JAVA秀-https://www.javaxiu.com/6663.html

3.服务器间数据共享。文章源自JAVA秀-https://www.javaxiu.com/6663.html

 文章源自JAVA秀-https://www.javaxiu.com/6663.html

 文章源自JAVA秀-https://www.javaxiu.com/6663.html

 文章源自JAVA秀-https://www.javaxiu.com/6663.html

 文章源自JAVA秀-https://www.javaxiu.com/6663.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 文章源自JAVA秀-https://www.javaxiu.com/6663.html

本文链接:https://blog.csdn.net/weiyi_xingdong/article/details/79992032文章源自JAVA秀-https://www.javaxiu.com/6663.html

文章源自JAVA秀-https://www.javaxiu.com/6663.html

原作者删帖   不实内容删帖   广告或垃圾文章投诉文章源自JAVA秀-https://www.javaxiu.com/6663.html

智能推荐

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

  [NodeJS] 优缺点及适用场景讨论 概述: NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢?   本文就个人使用经验对这些问题进行探讨。 一. NodeJS的特点 我们先来看看NodeJS官网上的介绍:   Node.js is a platform built...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

为什么80%的码农都做不了架构师?>>>         概述:       NodeJS宣称其目标是“    旨在提供一种简单的构建可伸缩网络程序的方法    ”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢?...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

1)系统解耦 假设你有个系统A,这个系统A会产出一个核心数据,现在下游有系统B和系统C需要这个数据。 那简单,系统A就是直接调用系统B和系统C的接口发送数据给他们就好了。 整个过程,如下图所示。 但是现在要是来了系统D、系统E、系统F、系统G,等等,十来个其他系统慢慢的都需要这份核心数据呢?如下图所示。 如果某个系统产出一份核心数据,可能下游无数的其他系统都需要这份数据来实现各种业务逻辑。 此时如...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

如何用redis/memcache做Mysql缓存层?(好解答) mysql 有自己的缓存机制 ,为什么还要用redis和memcache缓存mysql数据?(redis和memcache可以做到分布式,而且速度更快) 如何将sql数据映射到kv表中,https://www.zhihu.com/question/20978376(sql可以用json存) Memcache缓存sql查询结果,数据变...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

Mongodb和MySQL数据库的对比 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。 MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。 Redis 和 Mysql 的区别: ...文章源自JAVA秀-https://www.javaxiu.com/6663.html

猜你喜欢

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

什么是memcache Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现DB的负担加重、数据库响应恶化、 网站显示延迟等重大影响。 为什么使用memcache? memc...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

月初在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨 的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB? 很多人比较关心 MongoDB 的适用场景,也有用户在话题里分享了自己的业务场景,比如 案例1 用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

简介 说到缓存技术,只要有一定经验的开发人员,肯定会想到redis和memcached这两个。并且在BAT里,redis已经逐渐取代了memcached,成为分布式场景广泛使用的缓存方案。接下来,我们就分析下,redis是如何取代memcached,成为开发者的宠儿的。 一、支持的存储类型不同 虽然redis和memcached都是内存型数据库,并且memcached不仅能够存储string类型,...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

Redis高级特性及应用场景         redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它。   过期时间可以设置为秒或者毫秒精度。 过期时间分辨率总是 1 毫秒。 过期信息被复制和持久化到磁盘,当 Redis 停止时时间仍然在计算 (也就是说 Redis 保存了...文章源自JAVA秀-https://www.javaxiu.com/6663.html

memcache和redis、Mongodb优缺点及应用场景 – 程序员大本营文章源自JAVA秀-https://www.javaxiu.com/6663.html

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 Image Segmentation Using Deep Learning: A Survey Paper链接:https://arxiv.org/abs/2001.05566 摘要 图像分割是图像处理和计算机视觉领域的一个重要课题,在场景理解、医学图像分析、机器人感知、视频监控、增强现实、...文章源自JAVA秀-https://www.javaxiu.com/6663.html

赞助商广告

相关文章

热门文章

推荐文章

相关标签

Copyright © 2018-2021 - All Rights Reserved - www.pianshen.com网站内容人工审核和清理中!文章源自JAVA秀-https://www.javaxiu.com/6663.html

继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定