自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不愿意做鱼的小鲸鱼の博客

qkongtao.cn 专注于分享Java后端,Web前端,微服务,大数据,服务器相关等技术

  • 博客(213)
  • 资源 (2)
  • 收藏
  • 关注

原创 Redis进阶——BitMap用户签到&HyperLogLog实现UV统计

UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。1天内同一个用户多次访问该网站,只记录1次。PV:全称Page View,也叫页面访问量或点击量,用户每访问网站的一个页面,记录1次PV,用户多次打开页面,则记录多次PV。往往用来衡量网站的流量。通常来说PV会比UV大很多,所以衡量同一个网站的访问量,我们需要综合考虑很多因素。

2024-04-20 09:11:17 1104

原创 Redis进阶——GEO地理坐标&附近商户案例

GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有:* GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member)* GEODIST:计算指定的两个点之间的距离并返回* GEOHASH:将指定member的坐标转为hash字符串形式并返回* GEOPOS:返回指定member的坐标* GEORADIUS:指定圆心、半径,找到

2024-04-20 09:07:27 1174 1

原创 Redis进阶——相互关注&Feed流推送

1、利用Redis中恰当的数据结构,实现共同关注功能,在博主个人页面展示出当前用户与博主的共同关注2、实现方式是使用的set集合,在set集合中,有交集并集补集的api,可以把二者关注的人放入到set集合中,然后通过api查询两个set集合的交集3、需要先修改之前的关注逻辑,在关注博主的同时,需要将数据放到set集合中,方便后期我们实现共同关注,当取消关注时,也需要将数据从set集合中删除

2024-04-20 09:03:20 728

原创 Redis进阶——点赞和点赞排行

同一个用户只能对同一篇笔记点赞一次,再次点击则取消点赞2. 如果当前用户已经点赞,则点赞按钮高亮显示(前端已实现,判断字段Blog类的isLike属性)

2024-04-20 08:57:54 829

原创 Redis进阶——redis消息队列

什么是消息队列?字面意思就是存放消息的队列,最简单的消息队列模型包括3个角色1. 消息队列:存储和管理消息,也被称为消息代理(Message Broker)2. 生产者:发送消息到消息队列3. 消费者:从消息队列获取消息并处理消息

2024-03-18 01:29:05 1001

原创 Redis实战——秒杀业务优化

如果充足,则在Redis中判断用户是否可以下单,如果set集合中没有该用户的下单数据,则可以下单,并将userId和优惠券存入到Redis中,并且返回0,整个过程需要保证是原子性的,所以我们要用Lua来操作,同时由于我们需要在Redis中查询优惠券信息,所以在我们新增秒杀优惠券的同时,需要将优惠券信息保存到Redis中。修改下单的操作,我们在下单时,是通过Lua表达式去原子执行判断逻辑,如果判断结果不为0,返回错误信息,如果判断结果为0,则将下单的逻辑保存到队列中去,然后异步执行。

2024-03-18 01:26:03 345

原创 Redis实战——分布式锁&Redisson

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式Java常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现Redis提供了分布式锁的多种多样功能可重入锁(Reentrant Lock)公平锁(Fair Lock)联锁(MultiLock)红锁(RedLock)读写锁(ReadWriteLock)信号量(Semaphore)

2024-03-18 01:22:02 614

原创 Redis实战——优惠券秒杀:超卖问题&一人一单问题

在各类购物App中,都会遇到商家发放的优惠券,当用户抢购商品时,生成的订单会保存到tb_voucher_order表中,而订单表如果使用数据库自增ID就会存在一些问题* id规律性太明显* 受单表数据量的限制* 如果我们的订单id有太明显的规律,那么对于用户或者竞争对手,就很容易猜测出我们的一些敏感信息,例如商城一天之内能卖出多少单,这明显不合适

2024-03-18 01:18:02 638

原创 Redis实战——查询缓存&缓存穿透、雪崩、击穿

为什么要使用缓存言简意赅:速度快,好用缓存数据存储于代码中,而代码运行在内存中,内存的读写性能远高于磁盘,缓存可以大大降低用户访问并发量带来的服务器读写压力实际开发中,企业的数据量,少则几十万,多则几千万,这么大的数据量,如果没有缓存来作为避震器系统是几乎撑不住的,所以企业会大量运用缓存技术但是缓存也会增加代码复杂度和运营成本

2024-03-18 01:13:38 302

原创 MySql进阶——索引&sql优化

相对于二叉树,层级更少,搜索效率高;2. 对于B-tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,指针跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低;3. 相对Hash索引,B+tree支持范围匹配及排序操作;

2024-03-18 01:06:17 562

原创 Socket网络编程(六)——简易聊天室案例

聊天室数据传输设计* 必要条件:客户端、服务器* 必要约束:数据传输协议* 原理:服务器监听消息来源、客户端链接服务器并发送消息到服务器

2024-03-01 17:54:09 859

原创 Socket网络编程(五)——TCP数据发送与接收并行

主要实现需求多线程收发并行TCP多线程收发协作TCP 服务端收发并行重构# TCP 服务端收发并行重构启动main方法重构原有的main逻辑如下:

2024-03-01 17:51:09 1140

原创 Socket网络编程(四)——点对点传输场景&方案

场景在一个局域网当中,不知道服务器的IP地址,仅仅知道服务器公共的UDP的端口,在这种情况下,想要实现TCP的连接。TCP是点对点的连接,所以需要知道TCP的连接IP地址和端口Port。

2024-03-01 17:46:14 928

原创 Socket网络编程(三)——TCP快速入门

TCP是什么英语:Transmission Control Protocol,缩写为 TCPTCP是传输控制协议;是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义与UDP一样完成第四层传输层所指定的功能与职责TCP的机制三次握手、四次挥手具有校验机制、可靠、数据传输稳定TCP能做什么聊天消息传输、推送单人语音、视频聊天等几乎UDP能做的都能做,但需要考虑复杂性、性能问题限制:无法进行广播,多播等操作。

2024-02-28 19:25:44 1358

原创 Socket网络编程(二)——UDP快速入门

UDP相关概念### UDP是什么* 英语:User Datagram Protocol,缩写为UDP* 一种用户数据报协议,又称用户数据报文协议* 是一个简单的面向数据报的传输层协议,正式规范为RFC 768* 用户数据协议、非连接协议(不可靠协议)

2024-02-28 19:07:36 873

原创 Socket网络编程(一)——网络通信入门&基本概念

在计算机领域中,网络是信息传输、接收、共享的虚拟平台在通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享网络是人类发展史来最重要的发明,提高了科技和人类社会的发展网络编程从大的方面说就是对信息的发送到接收通过操作相应Api调度计算机硬件资源,并利用传输管道(网络)行数据交换的过程简单来说是IP地址与端口的结合协议(RFC 793 )一种地址与端口的结合描述协议TCP/IP协议的相关API的总称;是网络Api的集合实现。

2024-02-28 18:53:41 1184

原创 java高级——动态代理

用一个明星的案例来解释动态代理的流程。假设现在有一个明星坤坤,它有唱歌和跳舞的本领,作为明星是要用唱歌和跳舞来赚钱的。但是每次做节目,唱歌的时候要准备话筒、收钱,再唱歌;跳舞的时候也要准备场地、收钱、再唱歌。明星觉得我擅长的做的事情是唱歌,和跳舞,但是每次唱歌和跳舞之前或者之后都要做一些繁琐的事情,有点烦。于是就找个一个经济公司,请了一个代理人,代理明星处理这些事情,如果有人想请明星演出,直接找代理人就可以了。

2024-02-27 02:28:26 641

原创 java高级——注解

注解就是Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。就是自己定义注解。public @interface 注解名称{public 属性类型 属性名()default 默认值,比如:现在我们自定义一个MyTest注解,注意在idea新建的时候不是class了,而是Annotation//一定要带小括号 前面的public可以不写 默认自动帮你写了//default true 表示默认值为true,使用时可以不赋值。

2024-02-27 02:26:39 602

原创 java高级——反射

什么是反射反射技术,指的是加载类的字节码到内存,并以编程的方法解刨出类中的各个成分(成员变量、方法、构造器等)。反射的作用基本作用:可以得到一个类的全部成分然后操作。可以破坏封装性。最重要的用途是:适合做Java的框架,基本上,主流的框架都会基于反射设计出一些通用的功能。如:IDEA通过反射技术就可以获取到类中有哪些方法,并且把方法的名称以提示框的形式显示出来,所以你能看到这些提示了。反射技术怎么用获取类的信息、操作它们反射第一步:加载类,获取类的字节码:Class对象。

2024-02-27 02:23:29 957

原创 java——多线程基础

什么是线程?线程(Thread)是一个程序内部的一条执行流程。程序中如果只有一条执行流程,那这个程序就是单线程的程序什么是多线程?多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)如何在程序中创建出多条线程?Java是通过java.lang.Thread 类的对象来代表线程的。什么是线程安全问题?多个线程,同时操作同一个共享资源的时候,可能会出现业务安全问题。线程安全问题出现的原因?存在多个线程在同时执行同时访问一个共享资源存在修改该共享资源。

2024-02-26 09:41:05 862

原创 java——特殊文件&日志技术

# 特殊文件 ## Properties文件后缀为.properties的文件,称之为属性文件,它可以很方便的存储一些类似于键值对的数据。经常当做软件的配置文件使用。核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容。

2024-02-23 21:23:00 609

原创 java——IO流基础

# IO流用于读写数据的数据流 (可以读写磁盘文件,或网络中的数据..)## IO流的四大分类:* 字节输入流:以内存为基准,来自磁盘文件/网络中的数据以字节的形式读入到內存中去的流* 字节输出流:以内存为基准,把内存中的数据以字节写出到磁盘文件或者网络中去的流。* 字符输入流:以内存为基准,来自磁盘文件/网络中的数据以字符的形式读入到内存中去的流。* 字符输出流:以内存为基准,把内存中的数据以字符写出到磁盘文件或者网络介质中去的流。

2024-02-23 21:20:12 763

原创 java——File类和字符集

File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)## File类的常用操作:获取文件信息(大小,文件名,修改时间)判断文件的类型创建文件/文件夹删除文件/文件夹遍及文件夹

2024-02-23 21:13:29 803

原创 消息通讯——MQTT WebHook&SpringBoot案例

EMQX WebHook 是由 emqx_web_hook (opens new window)插件提供的将EMQX中的钩子事件通知到某个Web服务的功能。WebHook 的内部实现是基于钩子,借助 Webhook 可以完成设备在线、上下线记录,订阅与消息存储、消息送达确认等诸多业务。它通过在钩子上的挂载回调函数,获取到 EMQX 中的各种事件,并转发至 emqx_web_hook 中配置的 Web 服务器。

2023-11-15 15:48:19 489

原创 两款开箱即用的Live2d

当然在搭建网站的时候很有趣的一点是看到别人的个人网站上都有一个自己网站的小人,原名Live2d,被称为看板娘,所以这篇博客是来分享我最新收集的两款超酷的Live2d和使用经历。

2023-08-21 15:48:59 968

原创 Vue实现在线文档预览

本次实现的文档预览的类型有:docx, xlsx, pptx, pdf,以及纯文本、代码文件和各种图片、视频格式的在线预览

2023-07-07 17:08:52 2040 7

原创 PhantomJS 服务端仿浏览器截图

PhantomJS是一个基于webkit的javaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行javaScript代码。任何你可以基于在webkit浏览器做的事情,它都能做到。它不仅是个隐性的浏览器,提供了诸如css选择器、支持wen标准、DOM操作、json、HTML5等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。phantomJS的用处可谓非常广泛诸如网络监测、网页截屏、无需浏览器的wen测试、页面访问自动化等。

2023-07-03 11:15:34 233

原创 SpringBoot仿GPT数据流传输

ChatGpt api返回数据时有两种返回方式,一种是使用流传输,另一种是直接返回全部的数据。如果使用流传输,响应的速度很快,不需要获取全部答案的内容后再开始响应返回,可以达到服务端返回数据时像打字机一样的效果返回答案;而直接返回全部数据的话,需要在服务端接收完ChatGpt的全部结果后再一次性把全部的数据响应返回给客户端进行展示,这个缺点就是很慢,一个结果最快也需要10秒钟。所以本文尝试模仿ChatGpt使用流数据的方式返回数据给客户端。

2023-06-16 17:44:32 4773 4

原创 springboot项目启动、关闭脚本

springboot项目启动、关闭脚本

2023-04-23 10:49:24 583 1

原创 java导入导出excel数据&图片合成工具

java服务端导入导出excel数据,和图片合成示例

2023-04-23 10:45:26 1128

原创 微信公众平台开发(五)——项目&公众号推广好友助力活动

该项目是一个微信积分活动推广的好友助力活动,当好友助力的助力值达到要求后就可以获得为粉丝准备的礼品。

2023-04-20 16:58:34 405

原创 微信公众平台开发(四)——微信网页授权:获取用户openid&用户基本信息

在开发中,如果web产品需要使用到微信的功能,比如微信授权登录、微信支付、微信投票等,我是开发的东东是一个web项目,然而如果需要接入微信的话,就需要使用道微信的微信网页开发相关的功能。

2023-03-24 10:59:53 8907 3

原创 微信公众平台开发(三)——微信二维码生成&扫码关注

微信二维码生成是指后端发送请求向微信服务器申请公众号的二维码,用户如果未关注,进行扫描改二维码后即跳转道公众号的关注页面;如果已经关注,扫描二维码后直接进入该微信公众号。当用户扫码时,微信服务器会向后端发送不同类型的扫描事件类型回调,后端可以通过不同情况分别作出响应的处理。

2023-03-24 10:49:52 1759

原创 微信公众平台开发(二)——自定义菜单、模板消息&微信素材

自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。开启自定义菜单后,公众号界面如图所示:自定义菜单接口可实现多种类型按钮,如下:一级菜单,二级菜单点击类型按钮跳转类型按钮拍照或者相册选择事件按钮。

2023-03-24 10:34:56 906

原创 微信公众平台开发(一)——概述&微信消息处理

微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开放接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发。可以理解为微信公众平台开发就是开发者借助微信公众号,将自己的网站或者应用接入微信平台的服务。

2023-03-24 09:59:26 654

原创 get两个js小技能——JS截取视频第一帧&图片转Base64

JS截取视频第一帧&图片转Base64

2023-03-20 10:39:34 1923

原创 wordpress优化经历(六)——wordpress图片防盗链

wordpress图片被防盗链笔记记录

2023-03-20 10:32:43 362

原创 mysql练习:经典50道基础题

mysql经典50道基础练习题(附加答案)

2023-01-17 13:23:07 3274 3

原创 VisualDrag低代码拖拽模板

使用vue实现的一个拖拽生成低代码平台,可以自定义界面元素拖拽生成页面,数据存储并且还原。

2022-11-21 13:56:14 2051

原创 图片折腾的经历——文件批处理、爬虫、图片工具等

先从某个渠道采集抖音该UP主的图片资源,然后使用shell脚本处理这些图片的名称和快速导入某个文件夹。又折腾图片AI优化转4K,但转出来的图片有些大,最后就进行尽量的无损压缩,最终得到的图片大小竟然和1K的图片大小差不太多。

2022-10-24 22:28:04 597 1

一把伞的时间轴归档页模板文件.zip

超好看的wordpress归档页! 示例:http://qkongtao.cn/?page_id=962

2021-08-14

heartemail.zip

springboot给女朋友每日专属邮箱源码

2021-07-26

空空如也

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

TA关注的人

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