mySQL (SQL) 与 Redis ( NoSQL)
mysql:
数据结构 :结构化
数据关联:关联的
查询方式:SQL查询
事务特性:ACID (原子性,持久性,隔离性,一致性)
存储方式: 磁盘
扩展性:垂直
使用场景:
(1) 数据结构固定
(2)相关业务对数据安全性、一致性要求较高
Redis:
数据结构:非结构化
键值类型 (Redis) 文档类型(MongoDB) 列类型(HBase) Graph类型(Neo4j)
数据关联:无关联
查询方式: 非SQL
事务特性:BASE { Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)}
存储方式: 内存
扩展性:水平
使用场景
(1) 数据结构不固定
(2)对一致性,安全性能要求不高
(3)对性能要求
特征:
键值:values支持多种不同的数据结构,功能丰富。
单线程:每个命令具备原子性 (对于网络处理采取 多线程,命令执行依然单线程)
低延迟,速度快(基于内存(核心),IO多路复用,良好的编码)
支持数据持久化 (内存查询速度是高,但没有存储,会定期会从内存持久化到内存)
支持主从集群,分片集群 (从节点 可也 备份 主节点,主节点万一出现宕机,数据也可以从节点找到,读写分离
把数据拆分,把数据拆除N分,)
支持多语言客户端 (java,python..等).