美文网首页
1-Redis应用场景

1-Redis应用场景

作者: Guoyubo | 来源:发表于2018-08-15 18:21 被阅读0次

    近来一直听说redis,也不清楚到底是干嘛的,解决什么问题的,一百度就直接说教你代码怎么用,前提是要知道应用场景啊!

    1 为什么使用?(网上都这么说,我理解不透)

    *解决数据高并发的读写问题

    *解决应用服务器的cpu和内存压力

    *减少io的读操作,减轻io的压力

    2 我的理解

    首先不管你是从别人哪里听到的redis还是你自己主动需要用redis,都说明是遇到高并发问题了,数据库查的太慢了,或者说其实数据库已经是很快了,但是你这1秒内要查个几百万次相同的数据(网速因素不考虑),数据库忙不过来了,连数据库最大连接数都不够用了,挂了。为啥这时候redis就行了呢?

    因为redis是操作内存的,速度和操作磁盘的不是一个级别的。mysql是以文件的形式存储的,sql的每次检索数据和插入数据都是读写(I/O)的操作,相对内存来说很耗时。但内存里的数据一断电就全没了,后边有时间再说怎么把内存数据及时保存到磁盘,即所谓的持久化

    redis提供两种方式进行持久化:

    一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),即定时保存

    另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)即实时保存

    3 redis一般存储什么数据?

    1 查询耗时的数据

    我们一般是把redis当缓存来用的,什么意思呢,就是把经常用到的一些查询耗时的数据在每次入mysql库的时候就放到redis里,下次来查的时候先查下redis里有没有数据,有的话就直接取了,就不用查询数据库了

    举个例子

    现在前端页面要实时显示下某物体的实时轨迹,那你每秒(或者不到1s)都查一次数据库,每次都把所有的历史轨迹从数据库查出来会相对较慢,你可以每次在物体上传自己位置到数据库的时候,先存到redis,然后再存数据库,量大的话让数据库慢慢存,你每次只查redis就行了,相对每次查数据库会快很多

    2 短期内不怎么变化的数据

    举个例子

    比如a网站首页一天有100万人访问,其中有一个板块为推荐新闻(大家看到的都一样,这个数据今天不会变化)。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

    相关文章

      网友评论

          本文标题:1-Redis应用场景

          本文链接:https://www.haomeiwen.com/subject/ljnwbftx.html