问题:
前端时间项目开始阶段,组长强烈支持使用Redis作为缓存,并且将数据库的数据存入Redis中,查询时查Redis,现在想来也找不到为什么,但是因为后来项目嗝屁了,也就不了了之,但是之后,闲暇之余,一直想尝试,自己实现像查数据库那样方便的查询Redis,后来也就动手了,具体的实现将会在另外一篇文章介绍,这里先整理下问题。项目实现之后,实际测试之后发现,这样从Redis查数据,并没有比从数据库查数据快多少(使用的是当前比较快速的数据库连接池 屎咖喱(hikari)),以下是简单的测试数据(非高并发环境测试,持久层使用的mybatis)
测试数据 | mysql | Redis |
---|---|---|
按照6万条数据主键查询一条数据 | 6-8 毫秒 | 4-7毫秒 |
按照91条查询全部数据(实际上实现是按照非唯一索引查询) | 166毫秒 | 66.25毫秒 |
上边对比发现,对于获取单条数据来说,Redis比数据库并快多少,但是对于非唯一索引来说,虽然快了100毫秒,但是维护成本却大大增加了,貌似得不偿失。
因此这里想总结下,为什么要是用Redis?
答:
1.分布式系统要使用。
2.快速查询,且是存储临时值的可以使用。
3.并发量大,