数据多的时候为什么要使用redis而不用mysql?

读写异常快

Redis非常快,每秒可执行大约10万次的读写速度。

丰富的数据类型

Redis支持丰富的数据类型,有二进制字符串、列表、集合、排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。

原子性

Redis的所有操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新的值。

丰富实用工具

Redis是一个多实用工具,可用于多种用例,如:缓存,消息队列(发布/订阅),通知,key值过期等等。

支持异机主从复制

Redis支持主从复制的配置,它可以实现主服务器的完全拷贝。

以上为开发者青睐Redis的主要几个可取之处。但是,请注意实际生产环境中企业都是结合Redis和MySQL的特定进行不同应用场景的取舍。如缓存——热数据、计数器、消息队列(与ActiveMQ,RocketMQ等工具类似)、位操作(大数据处理)、分布式锁与单线程机制、最新列表(如新闻列表页面最新的新闻列表)以及排行榜等等可以看见Redis大显身手的场景。可是对于严谨的数据准确度和复杂的关系型应用MySQL等关系型数据库依然不可替。

更多技术了解,关注小伍


小伍科技

首先,不是选用redis或者mysql是根据数据多少来定的,这两个数据库的用法区别并不是在于储存数据的多少。

其次,我们来看下这两个数据库,mysql是一种关系数据库管理系统,是持久化储存,它将数据保存在不同的表中。而redis是一个高性能的key-value数据库,它并不存在关系型数据库。redis的数据是缓存并留驻在内存中运行的,而mysql的是放在磁盘中的,单就这点来说,你还会觉得这个问题问得正确吗?mysql是关系型数据库,它的功能比较强大,但是当cpu访问数据时,它可不会先去访问磁盘,而是先去访问内存当前正在运行的那部分数据,这样以来,redis的速度就要比mysql快。一般中小型网站的开发选择用mysql,因为mysq体积小、速度快、总体拥有成本低,还有一个特殊的地方,就是源代码公开。但是对于大型互联网公司来说,mysq就很难满足他们的需求,因为特定的系统绝大部分的检索在很多时候都是基于主键的查询,这样一来,如果选用关系型数据库的话,那么将会使得效率比较低下。一般web每次只访问redis,然后在没有找到数据的情况下,才去访问mysql,因此,选择key-value数据库就是无可厚非的。

最后,我觉得,你在选择时应该是要看情况是怎样的,哪种更符合需求,而不是单看数据的大小。


红尘小书童

这个命题首先就有问题,redis是key-value型的内存数据库,而mysql是关系型数据库。两者使用场景不同,前者主要用于实时响应要求高的场景,响应时间在毫秒级,通常作为热点数据的缓存使用。后者通常用于结构化数据的持久化和传统的事务处理场景。两者使用场景主要是根据数据类型、响应时间、事务类型等方面考虑,数据量并不是选择哪个的数据库的决定因素。


初沏的茶

这个问题的标题是有错误的,二者应用的场景不同功能不同 作用不同。

redis 并不是用来解决数据多的问题的。redis 代替不了 SQL,二者间是合作关系,经常是一同使用。

redis 适用于经常调用,又经常变化的临时数据。或者恒久不变的,但要经常调用的数据。数据量通常不是特别大,存于内存中,数据成本较高,但效率高,不占用磁盘 lO。

而MYSQL是用于复杂查询关系与条件的环境,数据量较大。


365娱乐

首先就题目来说,这个说法是个伪命题,没有任何理论依据和实践支持。

大家都知道mysql和redis的应用场景不一样,mysql是关系型数据库,redis是key-value的内存数据库。mysql将数据持久化到磁盘,而redis虽然也支持持久化,但主要应用场景仍然是使用内存来实现缓存的目的,所以理论上mysql可以有效管理的数据量比redis多得多。

redis相比mysql的优势在于直接使用内存读写数据,速度比mysql快,但是内存容量有限,所以大多数应用使用redis来缓存热点数据,达到提升应用性能的目的,而结构化数据仍然使用关系型数据库来存储。

因此,访问频率较高的热点数据使用redis来进行缓存才是最普遍的互联网应用实践。


java老菜鸟

Redis是内存数据库,数据保存在内存中,速度快。

Mysql是关系型数据库,数据存储在磁盘中,数据访问也就慢。

redis适合放一些频繁使用,比较热的数据,因为是放在内存中,读写速度都非常快 。

目前大多数公司的存储都是mysql + redis,mysql作为主存储,redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能


语言密码

不能笼统的这么说,这两个东西有完全不同的应用场景。也要看数据多到什么程度。

redis是一个内存数据结构的服务,它将数据存储在内存中,从而实现了非常好的吞吐量和性能。它有提供了很丰富的数据结构,特别适合社交类业务的系统。但是内存数据库要求服务器的内存足够才行,存储的数据量越大消耗的内存也就越大,如果内存不够就会导致操作系统进行内存到磁盘的交换结构性能急剧下降。新浪微博的数据存储就是用的redis来实现的。

mysql是一个传统的数据库系统,因为它的架构非常的灵活,可以集成很多不同方式的存储。mysql因为大部分都是磁盘操作自然性能比不上redis,但是支持事务等功能。适合于各种业务系统,对于海量的数据存储并没有问题。Facebook用的是MySQL的集群。

数据量大,有多大,业务是什么样,不能一概而论。用的好一样可以解决大部分的问题,新浪微博的冷数据就是用MySQL。


平凡的上班族

数据多而且调用频繁的话,用mysql存储的话数据库连接被一直占用,其它的数据请求就进来了,导致连接超时,数据量大的话,数据库直接死机了。只能重启才能解决问题。



这个时候如果把数据请求量大的数据放在redis中的话就可以分担一下mysql的压力,从而提高系统的性能,解决请求并发问题。


分享到:


相關文章: