【DB】Redis、MemCached、MongoDB、MySQL对比

1.对比

DB 特性 数据结构 查询 附加特性 Ops(并发性能) Latency时延
Redis

内存

非关系

多种数据结构

(主要Key-Value)

String

List

Set、Sorted Set

Hash

各种数据类型查询

get

部分事务

发布/订阅

主从复制

磁盘持久化

支持Lua脚本

单线程

120000(12w)

<1ms
MemCached

内存

非关系

Key-Value

K-V键值对

create, read,

update, delete

多线程服务端

高性能

80000(8w)

<1ms
MongoDB

磁盘

非关系

文档

BSON documents

create, read,

update, delete,

conditional queries, 

主从复制

分片 

索引(B树)

3500(3k)

<100ms
MySQL

磁盘

关系型

表结构记录

表记录 行

Select, insert,

update, delete,

functions函数,

stored procedures存储过程

事务(Innodb)

主从复制

索引 (B+)

900(<1k)

>100ms

2.内存型对比

场景选择

  1. 根据数据类型
  2. 并发量
  3. 可用性

memcache适合以KV的缓存为主,数据量,并发业务量大的场景,它支持多线程操作,充分利用CPU,但缓存不能持久化

Redis拥有丰富的数据类型,可以做到缓存持久化,宕机更容易数据恢复,在单线程的效率比memcache快

2.1Redis

部署模式 特性 适应场景
单机 可用性差! 可以接受缓存穿透的场景
哨兵

高可用

提供主从的监控,

当主服务宕机后,

从服务能快速切换成主服务,

缺点是不易扩容

高可用场景

集群

横向扩展-负载均衡

集群模式内存和QPS不受限于单机

有延迟

通信采用gossip协议,请求逐步打到各个节点上,有一定延迟,但集群压力比较小

大数据量的高可用场景

发布了132 篇原创文章 · 获赞 122 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sarafina527/article/details/105286352