大家都知道,计算机的瓶颈之一就是IO,为了解决内存与磁盘速度不匹配的问题,产生了缓存,将一些热点数据放在内存中,随用随取,降低连接到数据库的请求链接,避免数据库挂掉。需要注意的是,无论是击穿还是后面谈到的穿透与雪崩,都是在高并发前提下,比如当缓存中某一个热点key失效。

redis缓存击穿

是指某一个非常热点的key (即在客户端搜索的比较多的关键字)突然失效了,这时从客户端发送的大量的请求在redis里找不到这个key,就会去数据里找,最终导致数据库压力过大崩掉

RuoYI的列表分页查询

(1):RuoYI的列表分页查询

 TableDataInfo<OrderVo> queryPageList(){ }

  

(2):返回json字符串形式

@GetMapping("/list")
public TableDataInfo list(YshopAccount yshopAccount) {

startPage();
List<YshopAccount> list = iYshopAccountService.queryList(yshopAccount);
return getDataTable(list);

}

select class_id from table where length(class_id) <![CDATA[ <= ]]> '13' and class_id!='0'

技术原理:

   date_trunc() 截断日期函数,完成定时时间语法

实现案例:

select to_char(date_trunc('quarter',add_date),'yyyy-MM') quarter from dr_information group by date_trunc('quarter',add_date) order by quarter desc

select date_trunc('month',now()) +interval '12 h';
//每月1号 12点

select date_trunc('month',now()) + interval '15 d 9 h 30 min';
//每月15号9点半

select date_trunc('day',now()) + interval '9 h';
//每天9点
select date_trunc('day',now()) + interval '7 d';
//每周的今天
select date_trunc('weak',now()) + interval '1d 1minute';
//每周的周二第一分钟

select date_trunc('h',now()) + interval '30 minute';
//每小时

select date_trunc('minute',now()) + interval '30 second';
//每分钟

select date_trunc('minute',now()) + interval '30 minute 30 second';
//每30分钟

select date_trunc('quarter',now()) + interval '15 d 15 h 15 minute 30 second';
//本季度的第15天,15小时 15分 30秒

select date_trunc('quarter',now() ) - interval '1 h';
//每个季度最后一天的晚上11点

select date_trunc('quarter',now() + interval '3 month') - interval '1 h';
//每个季度的最后一天的晚上的11点(从下个季度开始算起)