redis应用场景
1 缓存提高访问速度
redis数据库是基于缓存的数据库,缓存可以提高速度,当我们访问某个网站的时候,第一个访问的人发起请求之后服务器这边收到请求,下一步就是返回一些静态文件,那么如果某些静态文件的内容是不经常变动的,那么就没有必要每次都去查找文件进行返回
在redis开辟一个空间进行存储,用户发起访问之后现在redis中进行寻找,如果里面存放着数据,那么直接就从redis中进行返回,这样非常快,如果redis里面没有,那么就再在文件中找,找到后返回数据,同时将数据存到redis中,这样下一个人来访问的时候就会非常快,慢的只是第一个人
这种方式非常常见,但是并不是一直向redis中存,redis基于内存的存储,如果内存存满之后将无法存储,因此对于那种被访问频率最高的数据,和访问频率很低的数据需要进行区别,那么就进行存在时间设置,每个被加载到redis中对的数据进行时间设置,如果超时就自动清理
用户每次访问的时候就对这个时间进行更新,如果是一个被访问频率很高的数据就会因为一直有用户访问导致失效时间一直后延,而那种访问频率非常低的数据就会因为两个连续访问用户之间时间间隔过长,从而导致失效时间达到后自动删除
2 非关系性质的应用
redis与mysql是两种典型的数据库代表,redis是非关系型数据库,这种数据库里面存储的是key value对,key实际上就是索引.这种数据库相对于mysql的优势在于不存在连表查询这种非常复杂的操作
比如在社交网络中的关系非常复杂,你朋友的朋友的亲戚的外甥的同学的哥哥的女朋友,听起来就脑壳痛,关系非常长,如果是mysql进行存储的,需要从你开始,连接多个表,最后才定位到目标,先不说数据库的效率,这种连接多层表的查询在书写语句的时候就要写死人,如果里面的关系再恶心点,有一对多,多对多,多对一的杂糅关系,那么写查询语句简直巴适得板
redis直接解决这种问题,根本就没有关系,只有索引,你给索引,瞬间找到
3 多任务公用—分布式思维
在多进程中,我们使用的是管道进行进程之间的数据交流,这种思维就是找一个公共的区域进行存放大家都要用的数据,从而实现进程之间的传递
两个独立的内存空间需要通信则需要找一个都能访问到的空间,那么任何进程都能够进行通过库访问到指定的一个redis数据库,两个空间都向这个库中添加和读取信息,那么就是实现了公用的问题
有点像QQ里面的群发消息,把群看成一个公共的地区,你发的消息发到这个公共地区,别人都能看到,别人发的数据你也能读到,这样的好处在于分布式的思维
如果现在有多台计算机,那么多个计算机就相当于是多个进程,如果计算机之间各自执行不同的功能,同时也需要其他计算提供加工后的数据,数据之间相互调用,那么使用网络方式确实也可以实现,这就有点费力不讨好了,最简单最容易的方式就是大家都把数据存到指定的一个redis数据库中,所有人都能访问到,这样就能够在某个计算机需要的时候进行读取,产生数据后保存到redis中方便其他计算机使用