在redis取数据若存在直接取,不存在在db中取,并放到缓存中
我们经常把一些常用的数据存放到redis中,以提高查询效率,对于springboot项目可以用标签注释的方式进行在redis中取数据,即先查缓存(redis),若不存在就查询数据库,并把查到的值放入到redis中。主要应用两个标签@CacheConfig
,@Cacheable
接口
标签在接口中进行注解。
import com.bot.model.BotConfig;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;@CacheConfig(cacheNames="BOT:BAIDU:CONFIG")
public interface IBotConfigSevice {/*** 进行token验证,先查redis不存在时在访问db,把db中的数据存入缓存* @param token* @return*/@Cacheable(key="targetClass+':'+methodName+':'+args")BotConfig getBotConfig(String token);
}
接口实现类
import com.alibaba.fastjson.JSON;
import com.base.service.support.BaseService;
import com.bot.model.BotConfig;
import com.bot.service.IBotConfigSevice;
import org.springframework.stereotype.Service;import java.util.Map;@Service
public class BotConfigService implements IBotConfigSevice {@Overridepublic BotConfig getBotConfig(String token) {String sql = "select * from te_bot_config where token=?";Map map = this.db1JdbcDaoSupport.queryForMap(sql, token);BotConfig botConfig= JSON.parseObject(JSON.toJSONString(map), BotConfig.class);return botConfig;}
}
注意可以使用JSON.parseObject(JSON.toJSONString(map), BotConfig.class);
将一个Map的数据赋值给实体类。
接口调用
在项目的拦截器或者其他什么地方调用接口就可以实现先查缓存(redis),若不存在就查询数据库,并把查到的值放入到redis中。可以减少我们自己进行缓存处理工作。
public class BotCatchService implements IBotCatchService {@Resourceprivate IBotConfigSevice iBotConfigSevice;public BotConfig getBotInfo(String token) {return iBotConfigSevice.getBotConfig(token);}
}
在redis取数据若存在直接取,不存在在db中取,并放到缓存中相关推荐
- python爬取数据保存为csv时生成编号_将爬取到到数据以CSV格式存储
CSV文件存储 CSV,全称为Comma-Separated Values,中文可以叫做逗号分隔值或字符分隔值,其文件以纯文本形式存储表格数据.该文件是一个字符序列,可以由任意数目的记录组成,记录间以 ...
- mysql按行取数据_菜鸟求助:怎么在mysql隔12行取一条数据呀??
你的位置: 问答吧 -> PHP基础 -> 问题详情 菜鸟求助:怎么在mysql隔12行取一条数据呀?? 我的问题是这样的: 我的数据库是每5分钟一行数据 我要隔一小时取一条数据 也就是每 ...
- python登录网站后爬取数据_如何用 Python 登录主流网站,爬取一些需要的数据
最近收集了一些网站的登陆方式和爬虫程序,有的通过 selenium 登录,有的则通过抓包直接模拟登录.作者希望该项目能帮助初学者学习各大网站的模拟登陆方式,并爬取一些需要的数据. 作者表示模拟登陆基本 ...
- yspider爬取数据导入mysql_爬虫实战四、PyCharm+Scrapy爬取数据并存入MySQL
一.创建爬虫项目 注意:不能直接使用PyCharm创建Scrapy项目,所以需要在爬虫实战三.PyCharm搭建Scrapy开发调试环境的基础(PyCharm配置完Scrapy)之上,选中mySpid ...
- mysql 取数据 展示_php mysql_fetch_row逐行获取结果集数据并显示在table表格中
在一般的网站中,我们会通常看到,很多数据库中表的数据在浏览器都是出现在表格中的,一开始让自己感到很神奇,但是仔细想想也不算太复杂,既然可以dql和dml的一般返回,以表格的方式返回应该也不成问题,但是 ...
- python自动登录网站爬取数据_Python爬虫实战:自动化登录网站,爬取商品数据
前言 随着互联网时代的到来,人们更加倾向于互联网购物.某东又是电商行业的巨头,在某东平台中有很多商家数据.今天带大家使用python+selenium工具获取这些公开的商家数据 适合阅读人群:sele ...
- Python数据分析:爬虫从网页爬取数据需要几步?
对于数据分析师来说,数据获取通常有两种方式,一种是直接从系统本地获取数据,另一种是爬取网页上的数据,爬虫从网页爬取数据需要几步?总结下来,Python爬取网页数据需要发起请求.获取响应内容.解析数据. ...
- python 定时自动爬取_python怎么定时爬取数据及将数据以邮件发送
定时功能,即程序可以根据我们设定的时间自动爬取数据: 通知功能,即程序可以把爬取到的数据结果以邮件的形式自动发送到我们的邮箱. 程序分成三个功能块:[爬虫]+[邮件]+[定时]. 对爬虫部分,主要是获 ...
- excel隔行取数据
有时候在做excel的时候,是希望可以实现隔行提取一个某列的数据,例如我下面的这个表格,想分别将1.3.5-和2.4.6-行数据取出来 好用的公式推荐出来 1.3.5-和2.4.6-行数据取出来 在空 ...
最新文章
- CAPEX与OPEX
- /etc/rc.local 与 /etc/init.d Linux 开机自动运行程序
- JavaFX 2中的PopupMenu
- poj 3278 catch that cow BFS(基础水)
- (需求实战_03)_shell脚本 sftp协议下载文件
- Android开发者应该深入学习的10个开源应用项目[转]
- Mysql:日志管理:二进制事务日志
- 谷粒学院项目总结(持续更新)
- 可用计算机处理的多种信息载体的统称,广西壮族自治区2019-2020学年语文四年级下册第二单元测试卷B卷(6页)-原创力文档...
- 手把手带你写 Vue 可视化拖拽页面编辑器
- 什么是CSR证书申请文件?
- java switch 例子_java——switch经典案例
- 基于麒麟座开始TIM6操作
- 2021-05-24 昨日三省吾身
- 活着活着,就明白了(精辟)
- 黄页 - 埃及的官方网上商业指南和本地搜索引擎
- 我所知道的张小龙 by和菜头
- Markdown学习第第二弹--分割线和标题
- matlab极点怎么输入法,[转载]MatLab中的极点配置方法
- 华为内部考核尺度大曝光