关于目前使用Redis(NoSQL)及MySQL 的利弊和使用原因

NoSQL的定义:

NoSQL = Not Only SQL,也解释为非关系型数据库。在NoSQL数据库中数据之间是无联系的。数据的结构是松散的
数据库分为关系型数据库与非关系型数据库;关系型数据库(RDBMS)的典型就是MySQL,而非关系型数据库的典型就是Redis

为什么使用NoSQL:

随着科技的发展,目前互联网的主要特点:
1>访问量大;
2>高并发;
3>高可用;
4>海量数据

而就以上特点而言,传统的关系型数据库就以上条件总结出以下几个缺点,即

1>无法应对成每秒千上万次的读写请求,无法处理大量集中的高并发操作。关系型数据是IO密集的应用,硬盘IO也是性能瓶颈
2>表中存储的记录数量有限。横向可扩展能力有限(MYSQL中一张表顶多只能创建256列),假设一张表有300多个属性,则此表无法存储。纵向数据可承受能力也是有限的,假设数据量十分庞大,在执行CURD等操作时,所用的时间就会很长,面对海量数据 必须使用主从复制,分库分表,这样的架构很难维护。
3>无法简单地通过增加硬件、服务节点来提高系统的性能。数据整个储存在一个数据库中,多个服务器没有很好地解决方法来复制这些数据。
4>大多关系型数据库是需要收费的,对硬件要求很高

NoSQL的优势:

1>大数据量,高性能:可接受数据量较大
2>灵活的数据模型:无序定义表和列,想添加数据直接添加即可
3>高可用:在系统出现故障时,可以快速的解决问题
4>低成本:大多数时间下,这是个开源软件

NoSQL的劣势:

1>无关系,数据之间无联系:灵活的数据模型表示数据是独立的,即假设存入两个有关系的内容则不能像关系型数据库那样定义一个外键将二者相关联,需要分开存储,会造成很多空间的浪费,假设其中一个属性发生改变,则需要将每一个具体的内容都修改一遍
2>不支持标准的SQL,没有公认的NoSQL标准:可能一个公司一个标准,不像关系型数据库一样,select等语句是通用的
3>没有关系型数据库的约束,大多数也没有索引的概念;
4>没有事务,不能依靠事务的ACID性;
5>没有丰富的数据类型(数值,日期,字符,二进制等)

因此没有什么东西是毫无缺点的,按道理讲,如果需要性能高的数据库可选NoSQL,要求不那么高的选关系型数据库,或者依靠事务的话选关系型,大多公司都是二者结合使用

Redis是当今非常流行的基于KV结构作为Cache(缓存)使用的NoSQL数据库

K表示V的值,V中存的是数据
在这里插入图片描述
在这里插入图片描述
以上是两种数据库操作的流程,Redis能在一定程度上,减轻对数据库的操作(对数据库的查询的压力),因为对数据库的操作中80%都是查询操作,因此这一行为其实意义很大。在内存中读写的速度也比MySQL要快,因此一般储存的是用户经常访问的数据

Redis:Remote Dictionary Server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值