- 博客(3)
- 收藏
- 关注
原创 项目配置多Redis数据源(Redis分片)
背景 随着项目使用量的增长,前期为解决高峰请求设置大量缓存应对的方式对单一Redis的压力越来越大,经常收到大量报警,网络IO占用很大,因此打算进行Redis分片,将流量较均衡分散到多台Redis上。 目标 支持多Redis数据源; 支持@Cacheable/@CachePut/@CacheEvict缓存注解; 方案 基于jedis的ShardedJedis扩展开发,因其可以根据Jedis j = getShard(key)将key较均匀的分散到各个实例中
2020-07-03 15:52:28 1075
原创 ThreadPoolExecutor避免调用者线程参与运算的几种方案
问题 项目中用到了ThreadPoolExecutor,有一个需求场景是:不希望主线程(调用线程)参与计算。 先了解下一些前提,线程池的原理: 当提交任务时,如果当前线程池已创建的线程数小于核心线程数(corePoolSize),则创建线程去执行任务; 如果当前线程数达到了核心线程数,则将任务放入到阻塞队列(workQueue,一般用LinkedBlockingQueue); 如果...
2019-12-04 15:52:53 424
原创 使用Left join 过滤条件在on和where之后的区别
一个简单的例子:A、B表关联查询如下: select * from A left join B on A.a = B.b where A.c = xx 分析:sql先执行select * from A left join B on A.a = B.b,会将结果拼装成一个临时表,where的条件就是过滤临时表 ,如果where中有B表的约束,则就相当于inner join了(原因:获取临时表中满足...
2019-12-04 14:39:50 624 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人