***之前开发过一个基于spring的多数据源的定时器项目,项目要负担多线程的接口调用,需要在30分钟内推送完30W+的数据。每条记录推送完成之后还需要记录到数据库。
如果直接在线程中操作数据库的话,我觉得有几个非常不好的地方:***
  1. 因为时效的原因,在一分钟之内可能需要启用几十个甚至上百个线程,这就意味着需要几十个甚至上百个数据库连接。这是一件十分耗费资源的行为,已经避免在线程中启用数据库连接。(这个正在考虑是否加入线程池,现在的量暂时不需要线程池的支持)
  2. 在推送数据的过程中,向数据库插入数据是十分耗费时间的行为,我曾经测试过,向Redis中写入52W条数据需要40秒左右的时间。我个人觉得,这个时间是完全可以接受的。你想象下,如果像数据库中插入52W条数据需要多久的时间,这个我相信大家都知道。
  3. 期待大家的补充…

然后结合最近自己关注的一些技术,觉得Redis比较适合我现在的应用场景。于是打算在项目中加入Redis作为消息队列,在处理推送业务的时候,把数据拼成SQL语句,存入到Redis中。然后单独启动一个简单的项目,从Redis中读取数据并写入到数据库中。减轻推送程序的压力,缩短推送业务的处理时间。也许你会说30W的数据还不用这样来做吧。但是公司的业务还处于增长期,以后可能两倍,三倍,甚至更多的增长。不多说了,直接开始简单的初步使用教程:

Redis有两个官网:中文官网 英文官网

有兴趣,英文好的可以多看下,本人英文太烂,就不献丑的翻译了(勉强看懂就是奇迹了。。。)

Linux版的安装教程我就不多说了,网上的教程大把大把的。我现在用的Windows就说下Windows下的使用。从官网来看:

Redis官网下载应该选择哪个_Redis


意思就是官网是不支持windows系统的,但是有组织在开发并维护,点击Learn more.

就是这个项目的在Github上面的源码地址了,这里不多说,直接上下载地址:各个版本的下载地址

Redis官网下载应该选择哪个_推送_02

点击下载之后,找个文件夹解压,会出现这样的几个文件:

Redis官网下载应该选择哪个_Redis官网下载应该选择哪个_03

点击图中标记的exe文件,就可以直接执行了。执行成功之后如下图:

Redis官网下载应该选择哪个_推送_04

Redis的默认端口是6379,PID:28564…