自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Es区域查找底层原理vsRedis Geo区域查找的实现区别

为什么要用GeoHash一提到索引,大家脑子里马上浮现出B树索引,因为大量的数据库(如MySQL、oracle、PostgreSQL等)都在使用B树。B树索引本质上是对索引字段进行排序,然后通过类似二分查找的方法进行快速查找,即它要求索引的字段是可排序的,一般而言,可排序的是一维字段,比如时间、年龄、薪水等等。但是对于空间上的一个点(二维,包括经度和纬度),如何排序呢?又如何索引呢?解决的方法很多,下文介绍一种方法来解决这一问题。思想:如果能通过某种方法将二维的点数据转换成一维的数据,那样不就可以继续使

2021-08-06 15:36:26 1636 1

原创 如何使用redis bitmap计算签到数和日活数

什么是BitMapBitMap,即位图,其实也就是 byte 数组,用二进制表示,只有 0 和 1 两个数字。大小首先占多少大小是根据里面bit偏移量而来。那么有个小问题,一个bitmap能存多少位。 实际上, redis只支持5种数据类型. 并没有bitmap. 也就是bitmap是基于redis的字符串类型的. 而一个字符串类型最多存储512M.8 bit = 1byte1024 byte = 1kb1024 kb = 1Mb8bit = 1b(字节) = 0.001kb其次:我们

2021-06-08 20:15:24 1123

原创 RocketMq剖析及实战

问题抛出RocketMq原理如何实现幂等Mq基本介绍使用场景应用解耦比如一个订单系统下单操作,需要支付系统和库存系统,物流系统配合。我们就可以用mq当中间件发送消息。单单一个系统挂了,不影响后面。系统恢复后,再次消费mq中信息即可。将同步调用改为异步。流量削峰出于经济考虑,短时间内有可能出现流量高峰。没必要为了那一点时间,从硬件上提升服务器之类。可以用到mq。把流量平分开。数据分发不用关心。谁要数据谁不要数据。mq当数据存储,谁想要就和mq建立连接。如章节更新。哪个服务想要,哪个服

2021-06-08 15:25:59 272 1

原创 Java线程池相关

问题抛出线程池7大参数分别是什么?描述一下线程池的工作原理?线程如何回收?如何合理的配置线程数?线程池是如何保证线程不被中断的?线程池创建使用线程池的好处减低资源消耗。通过重复利用已创建好的线程来降低线程创建和销毁造成的消耗;提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立马执行;提高线程可管理性。线程池时稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。Java线程池七大参数public Thread

2021-06-02 11:12:20 116

转载 Juc中常用工具CountDownLatch、CyclicBarrier、Semaphore剖析,及使用场景

Juc中常用工具CountDownLatch、CyclicBarrier、Semaphore剖析,及使用场景CountDownLatch使用场景场景1 让多个线程等待:模拟并发,让并发线程一起执行场景2 让单个线程等待:多个线程(任务)完成后,进行汇总合并原理CyclicBarrier用例用例一用例二原理CyclicBarrier与CountDownLatch的区别Semaphore常用方法示例原理CountDownLatch使用场景源码中如下:它是一个同步工具类,允许一个或多个线程一直等待,直到其他

2021-05-31 18:55:00 150

原创 Java CAS底层实现原理和延伸思考

问题抛出CAS底层实现原理高并发情况下存在ABA问题以及如何解决JAVA内存模型ABA变化延伸思考和synchronized,lock的区别,以及synchronized锁优化的过程高并发环境下用cas还是synchronized这是个坑synchronized关键字保证同步的,这会导致有锁。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程

2021-05-31 13:57:42 295

原创 ConCurrentHashMap源码分析

内部结构一个 ConcurrentHashMap 维护一个 Segment 数组,一个 Segment 维护一个HashEntry 数组。JDK 1.7实现原理其中 Segment 继承于 ReentrantLock。使用分段锁技术。将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。能给实现真正的并发访问。Segment 继承了 ReentrantLock,表明每个 segment 都可以当做一个锁。这样对每个 seg

2021-05-28 14:40:40 59

原创 HashMap源码分析

HashMap原理我们都清楚HashMap中,采用数组+链表的方式来实现对数据的储存。HashMap采⽤Entry数组来存储key-value对,每⼀个键值对组成了⼀个Entry实体,Entry类实际上是⼀个单向的链表结 构,它具有Next指针,可以连接下⼀个Entry实体。 只是在JDK1.8中,链表⻓度⼤于8的时候,链表会转成红⿊树!...

2021-05-27 23:40:46 82

原创 ThreadLocal的使用及内存泄漏剖析

文章目录前言一、什么是ThreadLocal二、内部实现1.set方法2.引用结构图及内存泄漏原因总结前言一、什么是ThreadLocal变量值的共享可以使用public static的形式,所有线程都使用同一个变量,如果想实现每一个线程都有自己的共享变量该如何实现呢,就会用到ThreadLocal。Threadlocal而是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据。ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一

2020-10-28 19:02:09 103

原创 Linux常用指令总结

文件查看cat :由第一行开始显示文件内容常用指令:cat [filename] :一般查看文件cat -n [filename] :显示文件内容的行数 查看文件cat -b [filename] :不对空行编号 查看文件cat -E [filename]:区分每行结束部分 每行结尾处显示$符号more : 一页一页地显示文件内容...

2020-07-21 17:38:12 71

原创 开源api记录

开源api记录Thumbnailator:支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。

2019-06-27 11:03:12 269

转载 深入解析Java AtomicInteger 原子类型

https://www.cnblogs.com/rever/p/8215743.html

2019-03-22 17:23:41 120

原创 Spring Cloud 2天速学学习记录

对象复制 Product product = productService.findById(id); Product result = new Product(); BeanUtils.copyProperties(product,result);进程睡眠 TimeUnit.SECONDS.sleep(1);创建Eure...

2019-01-08 10:49:02 268

原创 使用Mybatis遇到问题总结

Controller映射不到请求今天在写代码的过程中,写好了一个controller。结果404。影射不到请求。原因如下:@Controller@RequestMapping("/mod/info") //这里可以省略valuepublic class UcModInfoController { @Autowired UcModInfoService ucModInfoS...

2018-12-25 17:03:19 296

原创 Oracle和Mysql实现分页

Oracle分页可以通过下面两种方式select * from ( select t.*, rownum RN from TABLE_NAME t ) where RN > 0 and RN <= 15`select * from ( select t.*, rownum RN from TABLE_NAME t ) where RN between 1 and 15...

2018-12-25 14:35:05 1061

原创 使用PL/SQL导出数据和设置定时任务

使用PL/SQL导出数据和设置定时任务导出表结构和数据选中需要导出的表2.邮件导出数据。选中SQL插入并且。勾选上创建表(否则没有建表sql)。并且在创面创建一个空白的sql文件...

2018-12-18 16:08:06 2239

原创 关于Mybatis中${}和#{}的理解

关于Mybatis中${}和#{}的联想

2018-12-04 15:39:21 615

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除