不用javaee用传统方式连接redis秒杀系统小理解以及踩坑指南
前言;作者大三第一次用redis,本来如果用ssm架构就能省去很多事情,奈何学校的培养方案要大四才学javaee自己目前自学的一点不够支持,所以我才用的是传统的方法,但是就是在用传统方法的时候也领略到ssm架构真的很方便,感觉好像直接用ssm的话省了一大半代码。
1,下载各种工具的JAR包,
2,,Addpath之后去import后使用,
3,实现
虽然曲曲折折的弄了好几天,但是这些底层一点点去实现无疑比直接用ssm做秒杀系统学的更多也更有挑战,特发一篇博客以便复习 ;)
慕课网学习视频连接;
https://www.imooc.com/learn/632
(讲课是讲的javaee的实现,我是直接自己写底层代码的,但是这个课里面的思路讲的挺好的。)
一,首先就是把DAO层接口,Impl都写好,因为没有用mybatic所以需要很细心,特别注意数据库的字段和实体类的字段呀。(主要重点讲踩坑,就不说这些dao,service是怎么写的了)
二,准备工作
注意事项;由于没有mybatic帮你引包,帮你做善后,所以,所有的jar都要自己去下载,然后Addpath,然后import,最后还要记得序列化的流,mysql的链接,jedis都要close哦,
1,jar准备,以下的四个jar都是要准备的呀,jedis-2.9.0毫无疑问,就像是jdbc一样的作用,commons-pool2-2.0提供jedis的连接池jedispool,commons-collections提供map里面一些很好用的方法(序列化的时候会用到呀) ,commons-codec能提供md5的加密算法,这可是保证秒杀系统的数据没有被改变过的重要凭证。
2,存在redis里面的数据时一定要先经过序列化成byte[]哟,这就要求,你的实体类必须要实现serializable就像下图,如果不实现这个会报错NotSerializableException,而且这个报错并不会中断你的程序来报给你,而是直接让你失败,(我找的好苦才找到)
3,要下载一个redis的工具,具体教程请自行百度呀(非常方便,很快就能安装好,主要是我没存,,)然后可以运行一下百度的连接redis的简单例子。redis到底是干嘛的呢,,做缓存,做一个中间件,中间数据库,最重要他运行在内存中,速度很快,在高并发的时候有奇效。
4,不用javaee手动实现一个秒杀系统,虽然可能比用ssm架构做的慢,但是收获绝对不少,还能加深自己对ssm架构的认识,何乐而不为。
5,用jedispool拿到jedis之后如果你设置了redis的密码,那就要记得jedis.auth(“密码”)如下图,不然照样会报错一个AUTH requesed 的错误,这个错误也不会中断程序,而是返回一个null然后要是不知道这里错了,可是要找很久的呀(我就是这样的,,)
-2020,11,14大三菜鸡实习冲刺100天留