Redis集成搜索功能(简单例子)
Redis集成搜索功能
前言
有时候想着,你要是查询一些固定的数据,是不是能从数据库里面查询一次后,就直接可以从redis里面拿啊?下面就是例子的实现
1.添加依赖
<!-- Spring data redis 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- commons-pool2 对象池依赖--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency>
2.编写yml文件
spring:Redis:# 超时时间timeout: 10000ms# 服务器地址host: 127.0.0.1# 服务器端口port: 6379# 数据库database: 0#密码默认为空password:lettuce:pool:# 最大连接数,默认8max-active: 1024# 最大连接阻塞等待时间 ,默认-1max-wait: 10000ms#最大空闲连接max-idle: 200#最小空闲连接min-idle: 5
3.编写配置文件
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> redistemplate = new RedisTemplate<>();// String类型 Key序列器redistemplate.setKeySerializer(new StringRedisSerializer());//Hash类型 Key序列器redistemplate.setHashKeySerializer(new StringRedisSerializer());// String类型 value序列器redistemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());// Hash类型 value序列器redistemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());redistemplate.setConnectionFactory(factory);return redistemplate;}
}
4.Impl层改写一下
1.以前的Impl层是这样的
@Overridepublic List<MedicineVo> findAllMedicineSort(MedicineSortVo medicineSortVo) {return medicineMapper.findAllMedicineSort(medicineSortVo);}
2.现在的impl层加了一些redis的东西
@AutowiredRedisTemplate redisTemplate;
/*** 查询medicine表中(药品类型为***)的所有数据* @return 查询的数据*/@Overridepublic List<MedicineVo> findAllMedicineSort(MedicineSortVo medicineSortVo) {String medicineSort = medicineSortVo.getMedicineSort();ValueOperations<String,Object> valueOperations= redisTemplate.opsForValue();//从redis获取数据List<MedicineVo> medicineVos = (List<MedicineVo>)valueOperations.get("medicinsort" + medicineSort);//如果为空,去数据库获取if (CollectionUtils.isEmpty(medicineVos)){medicineVos = medicineMapper.findAllMedicineSort(medicineSortVo);valueOperations.set("medicinsort"+medicineSort,medicineVos);}return medicineVos;}
5.结果为
1.没运行前Redis里面什么都没有
2.运行之后
3.我再运行一次后,我的Mybatis Log打印SQL数据就不打印了,就证明没有从数据库里面再去查询了,而是从Redis里面查询的数据。
Redis集成搜索功能(简单例子)相关推荐
- layui自定义查询条件html页面,Layui的数据表格+springmvc实现搜索功能的例子_飛雲_前端开发者...
如下所示: 主要在前端页面加: 搜索ID: userid content 搜索 在 reload:function () { var keyWord=$("#keyWord").v ...
- 如何读出烧录程序.bin的数据_如何改变程序搜索数据的方式?使用Redis进行搜索...
当用户在文本编辑器或者文字处理软件中搜索一个单词或者句子的时候,软件就会对文件进行扫描并寻找那个单词或者句子.如果读者曾经使用过Linux.Unix或者OS X的grep程序,或者曾经使用过Windo ...
- Django开发个人博客网站——19、通过Django Haystack实现搜索功能(上)
该博客最开始采用的模板是并不包括搜索功能的,在主页只有主页.归档和分类三个部分.最后博主自己添加了搜索框,不过其实不太想让大家使用这个功能,因此将搜索框隐藏了,只有再点击搜索时,才会显现出来.但是这个 ...
- PHP商城的搜索功能
大家好,今天分享一个商城的搜索功能,建立在上一篇文章的基础上实现的. 搜索功能简单的说就是通过sql语句在数据库中实现模糊查找 连接数据库,实现分页功能(可以参考上一篇文章) 定义一个变量接收传过来的 ...
- SAP系统和微信集成的系列教程之八:100行代码在微信公众号里集成地图搜索功能
本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发环境的搭建 (2) 如何通过微信公众号消费API (3) 微信用户关注公众号之后,自 ...
- Hexo集成Algolia实现搜索功能
2年前搭建的hexo博客好久没有维护了,一看 hexo 以及先前使用 butterfly 主题已经更新好几个版本了,看介绍在速度性能上有了很大的提高,于是打算给 hexo 升个级,整理整理翻翻新.通过 ...
- vue实现简单搜索功能
目录 1.概述 2.功能逻辑 2.1功能流程 2.2 流程图 3.功能实现 3.1 vue组件化 3.2 代码 3.3 动态效果 1.概述 在vue项目中,搜索功能是我们经常需要使用的一个场景,最常用 ...
- python discuz搜索api_Django用内置方法实现简单搜索功能的方法
Model中分别提供了filter方法和icontains方法实现简单的搜索功能. html页面中实现搜索框 模板api_test_manage.html中增加以下内容 {% csrf_token % ...
- html织梦站内搜索代码,简单三步-实现dede站内搜索功能
前几天,在帮一个客户在做网站时,因为客户要求网站内要弄一个产品搜索功能.因为才接触dede不久,对于dede也不是很熟悉.在网上查询了一些资料,但觉得网上的资料很杂乱,把一个简单的东西变为复杂化了.下 ...
最新文章
- 安装TensorRT,然后导入uff库包的时候报错:ImportError: ERROR: Failed to import module(cannot import name ‘GraphDef`)
- 优秀的软件测试人员应该具备的素质
- cisco交换机命令大全(5)
- 并发设计模式之生产者消费者设计模式
- 08-Flutter移动电商实战-dio基础_伪造请求头获取数据
- mysql write rows_解析MYSQL BINLOG 二进制格式(5)--WRITE_ROW_EVENT
- 无法将 DBNull.Value 强制转换为类型“System.DateTime”。请使用可空类型
- asp.net mvc源码分析-Action篇 DefaultModelBinder
- matlab故障识别,基于Matlab的电力系统故障分析与仿真(V2.1)最新版
- 第三篇 层次类非线性表的编程实验 第10章 应用经典二叉树编程
- python新手小项目实例-有没有简单一点的 Python 小例子或小项目?
- Android学习进阶路线导航线路(Android源码分享)
- 如何成为一名Java初级程序员
- 摩莎485通讯测试软件,485串口测试软件1.6 免费版
- MSCOCO检测数据集类别中文名
- android开发中对图片的处理方式汇总
- 兰道尔原理(Laudauer‘s Principle)
- 达芬奇机器人变身‘模仿达人’,通过看视频模仿手术缝合、穿针、打结等动作...
- 如何获取模拟器安装的app的位置
- 三阶段--017Day 模块 Requirejs