Springboot集成Redis做数据库缓存(原生版)
Springboot集成Redis做数据库缓存(原生版)
redis做缓存简单来说就是:系统把表中经常访问的记录放在了Redis中,然后用户查询时先去查询Redis再去查询MySQL,由于缓存在内存中,所以查询会很快,起到提高性能的作用。
先来看效果吧~
测试案例是把一个查询重复99999次,根据时间来判断性能的好坏。
使用redis时:
不使用redis时:
可以看出使用redis大概快了两秒钟,确实实现了优化。但是redis可以实现的优化效果作者并不是很了解,这里感觉效果不算特别明显,可能和代码有关系。
本文所用的方法是原生的redis操作,没有用到springboot自带的缓存机制(不会,下次再更)。本文代码基于之前的文章进行添加,需要源码的同学可以去原文下载。
maven配置
添加以下依赖:
1 | <dependency> |
application配置
redis默认是没有密码的,所以如果你没有设置密码就不需要写密码啦
1 | spring:redis:host: localhost |
Java代码
- 首先在项目文件夹下新建config文件夹(放配置类)和util文件夹(放工具类)
- 在config文件夹下新建RedisConfig类
1 |
|
RedisTemplate是Spring Data Redis提供给用户的最高级的抽象客户端,用户可直接通过RedisTemplate进行多种操作,例如set、get
- (非必须)可以在config文件夹下新建一个RedisConstant类来存储redis的key
1 | public class RedisConstant{ |
到时候使用时直接调用参数即可
- 在util文件夹下新建RedisUtil类,里面的内容是封装好的redis操作,网上有很多大佬写的工具类,通用性比较高,找到合适的可以直接拿来用
我找到的工具类有很多功能,代码比较长,放在文章的最后
- 在serverimpl中添加redis的相关代码
主要逻辑是查询前先在redis中寻找有没有要查找的内容,如果没有再去数据库中查找,数据库返回的值顺便存入redis,这样下次再访问时就可以从redis中读到数据了。
1 |
|
代码部分就到此结束了~
运行代码
首先你的电脑要先启动redis服务器端才可以。
redis官方是没有Windows版的,不过已经有大佬开发出了Windows版,安装起来比较简单,没什么需要注意的。大家跟着菜鸟教程先在自己电脑上安装redis吧!
安装好了,有的同学就要问了,redis现在只能在它自己的目录下运行,这可怎么办捏?
很简单,我们把redis的路径添加到环境变量中,就可以在任意位置启动redis了
耗,现在我们打开cmd,输入redis-server,就可以启动redis服务端了(默认的端口6379)
不要关闭服务端界面,再打开一个cmd,输入redis-cli,就可以启动客户端了(默认的端口6379)
现在,来运行我们写好的程序吧
进入localhost:8084,点击获取,我们会从数据库查到数据,同时把数据存入redis,这时我们在redis客户端就可以查到数据了~
如果你想不起来你的键叫什么,又不想去看代码,那么查询现在redis中存有的键:keys *
现在你可以自己写一个测试用例来看看效果如何了。
虽然在大项目中redis肯定不是这么用的,但是对于作者来说,起码算是用起来了,后面再学习正确的简洁的使用方式,学会了来给大噶更新!