Mybatis不是也有个缓存吗,可不可以用来做这个暴露秒杀地址接口?
缓存(内存数据)都是要和数据库(磁盘数据)打交道的,
那么用Mybatis的缓存,你能控制它什么时候与mysql打交道么?具体怎么打交道你能控制么?我不是很了解mybatis的缓存,我只用过hibernate的缓存,但想来是差不多的,他们的缓存与数据库的同步都是要发sql的,尽管它的sql发送时机和sql语句的结构做了优化,但是它是自动的,你没法去控制。
redis做缓存,你可以完全控制,而且控制起来很简便。
这是第一点,自定义控制逻辑上来说,不如redis。
第二点,学习成本上来说,redis非常低,操作简单易上手。
第三点,redis能抗高并发,mybatis的缓存能不能抗高并发呢,即使能,最终的压力还是还给了mysql
嗯,装了波B,想到啥说啥,小伙伴们笑一笑就行
在网上查资料后自己的理解:利用redis可以减轻MySql服务器的压力,减少了跟数据库服务器的通信次数。秒杀的瓶颈就在于跟数据库服务器的通信速度(mysql本身查询非常快),所以用Mybatis做缓存本质上没解决问题。(如果有误欢迎大神指正。)