ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-01-19 15:30:49  阅读:156  来源: 互联网

标签:缓存 redis 数据库 Redis 不用 查询 mysql 服务器 数据


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

通常来说,当数据多、并发量大的时候,架构中可以引入Redis,帮助提升架构的整体性能,减少Mysql(或其他数据库)的压力,但不是使用Redis,就不用MySQL。

因为Redis的性能十分优越,可以支持每秒十几万此的读/写操作,并且它还支持持久化、集群部署、分布式、主从同步等,Redis在高并发的场景下数据的安全和一致性,所以它经常用于两个场景:

img

缓存

经常会被查询,但是不经常被修改或者删除的数据;比如数据字典,业务数据中的热点数据;这样不仅提升查询效率,还可以减少数据库的压力;

经常被查询,实时性要求不高数据,比如网站的最新列表、排行榜之类的数据,只需要定时统计一次,然后把统计结果放到Redis中提供查询(请不要使用select top 10 from xxxx)。

缓存可以方便数据共享,比如我先用电脑网页打开X东,选了两件商品放到购物车里面,再登录手机APP,也是可以看到购物车里面的商品的。

判断数据是否适合缓存到Redis中,可以从几个方面考虑:会经常查询么?命中率如何?写操作多么?数据大小?

img

我们经常采用这样的方式将数据刷到Redis中:查询的请求过来,现在Redis中查询,如果查询不到,就查询数据库拿到数据,再放到缓存中,这样第二次相同的查询请求过来,就可以直接在Redis中拿到数据;不过要注意【缓存穿透】的问题。

缓存的刷新会比较复杂,通常是修改完数据库之后,还需要对Redis中的数据进行操作;代码很简单,但是需要保证这两步为同一事务,或最终的事务一致性。

img

高速读写

常见的就是计数器,比如一篇文章的阅读量,不可能每一次阅读就在数据库里面update一次。

高并发的场景很适合使用Redis,比如双11秒杀,库存一共就一千件,到了秒杀的时间,通常会在极为短暂的时间内,有数万级的请求达到服务器,如果使用数据库的话,很可能在这一瞬间造成数据库的崩溃,所以通常会使用Redis(秒杀的场景会比较复杂,Redis只是其中之一,例如如果请求超过某个数量的时候,多余的请求就会被限流)。

这种高并发的场景,是当请求达到服务器的时候,直接在Redis上读写,请求不会访问到数据库;程序会在合适的时间,比如一千件库存都被秒杀,再将数据批量写到数据库中。

所以通常来说,在必要的时候引入Redis,可以减少MySQL(或其他)数据库的压力,两者不是替代的关系。

img

MySQL服务器的最大并发连接数是16384。

受服务器读配配置及网络环境等制约,实际服务器支持的并发连接数会小一些。主要决定因素有:
1、服务器CPU及内存的配置。
2、网络的带宽。互联网连接中上行带宽的影响尤为明显。

redis最大得访问量是10万左右,写入在8万左右

标签:缓存,redis,数据库,Redis,不用,查询,mysql,服务器,数据
来源: https://blog.csdn.net/weixin_49319422/article/details/112835768

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有