- 博客(40)
- 收藏
- 关注
原创 Redis--Bitmap有序集合的语法和使用场景举例
Redis除了常见的五种数据类型之外,其实还有一些少见的数据结构,如Geo,HyperLogLog,Bitmap等。虽然它们少见,但是作用却不容小觑。本文将介绍Bitmap数据类型的语法和使用场景。下文将介绍bitmap的使用指令,以及其应用场景。在开发中,我们常常需要存放一些布尔类型的数据,比如我们的上班打卡记录,游戏签到记录等等。
2024-01-23 23:31:50 1291
原创 Java--业务场景:敏感词过滤代码实现(Fastjson配置全局序列化 @JSONField注解的serializeUsing属性)
【代码】Java--业务场景:敏感词过滤代码实现(Fastjson配置全局序列化 @JSONField注解的serializeUsing属性)
2024-01-22 09:57:32 1562
原创 排序算法--桶排序的原理及案例(Java)
桶排序,又叫箱排序,是一种比较常见的排序算法。其主要思想是分治思想,将大问题化成小问题。是将数组里的数据分配成几个区间中,然后再对区间里的数据分别排序,最后依次把各个区间中的记录列出来即可得到有序序列。
2024-01-21 18:43:13 1199
原创 Redis--HyperLogLog的指令语法与使用场景举例(UV统计)
Redis除了常见的五种数据类型之外,其实还有一些少见的数据结构,如Geo,HyperLogLog等。虽然它们少见,但是作用却不容小觑。本文将介绍HyperLogLog指令的语法和使用场景。HyperLogLog是Redis提供的一种不准确(标准误差为0.81%)的去重计数方案。
2024-01-20 02:41:14 1418
原创 Redis--Zset使用场景举例(滑动窗口实现限流)
在一文中,提及了redis数据结构zset的指令语法和一些使用场景,今天我们使用zset来实现滑动窗口限流,详见下文。滑动窗口是一种流量控制策略,用于控制一定时间内请求的访问数量。其原理是:将时间划分成规定的时间片段,每个片段有固定的时间间隔,如1s,1min,1h,然后定义一个时间窗口,比如5s,5min等,该窗口会随着时间向右移动。此外还需要计数器计算窗口内的请求数。当窗口移动时,会把已经走过的时间片段的请求数删掉。
2024-01-19 00:19:38 2143
原创 Redis--Geo指令的语法和使用场景举例(附近的人功能)
Redis除了常见的五种数据类型之外,其实还有一些少见的数据结构,如Geo,HyperLogLog等。虽然它们少见,但是作用却不容小觑。本文将介绍Geo指令的语法和使用场景。Geo是"geolocation"的缩写,即地理定位器,顾名思义就是记录地理位置信息,用来进行地址位置排序的数据结构。所以它场景的应用场景便是寻找附近的人最佳路线推荐等等。说到地址位置排序,不得不提地理位置距离排序算法GeoHash算法,Redis也使用了这个算法。
2024-01-18 00:32:30 1414
原创 Redis--Zset有序集合的语法和使用场景举例(朋友圈点赞,排行榜)
Redis有五种常用的数据结构,string,hash,list,set,zset。其中zset 类似于java中SortedSet和HashMap的结合体,一方面它是个set,保证了内部value的唯一性,另一方面它可以给每个value赋予一个score,代表了这个value的排序权重,用于排序。zset的主要使用场景有:粉丝列表(score是关注时间),考生成绩表,排行榜等。下文将介绍zset的使用指令,以及其两个应用场景。zset添加数据 :zadd key score value。
2024-01-17 09:48:35 1431
原创 效率工具--使用飞书妙记生成视频的文字记录
在日常工作中,经常需要参与各种线上会议,会后对会议内容时常需要整理相关的文字记录。为了提高这一过程的效率,我们可以考虑使用飞书妙记用来生成会议记录,飞书妙记这款产品是字节跳动下飞书的一块功能,可以快捷地将视频内容中语音转为的文字记录。本文介绍如何使用飞书妙记将视频内容转为文字,以B站视频为例哈。
2024-01-16 00:04:45 1200
原创 使用Github + PicGo搭建个人图床,并使用CDN加速
在写博客的时候,常常需要为博客配图,于是一个好用稳定的图床的重要性不言而喻。本文主要介绍如何使用GitHub + PicGo的方式快速搭建一个个人使用的图床。该方式方便快捷,还免费hh,唯一的不足是图片存放在GitHub公有仓库中,但是应该不会有人在图床里上传私密的图片吧,不会吧。所以这种方法已经满足大部分人的需求了,以下是配置步骤。
2024-01-15 08:17:39 1915
原创 Java--RSA非对称加密的实现(使用java.security.KeyPair)
非对称加密是指使用不同的两个密钥进行加密和解密的一种加密算法,调用方用使用服务方提供的公钥进行加密,服务方使用自己的私钥进行解密。RSA算法是目前使用最广泛的公钥密码算法。Java提供了KeyPairGenerator类要生成公钥和私钥密钥对(KeyPair),本文将提供两个接口,模拟公钥加密字符串和私钥解密字符串的过程。
2024-01-14 00:25:00 1162
原创 MySQL--InnoDB的一次更新事务实现流程与二阶段提交
注意:在BinLog和RedoLog写入的时候,是分了两个阶段,以二阶段提交的方式来保证一致性。
2024-01-13 00:27:00 1159
原创 Java--ListUtil工具类,实现将一个大列表,拆分成指定长度的子列表
在项目中有时会出现列表很大,无法一次性批量操作,我们需要将列表分成指定大小的几个子列表,一份一份进行操作,本文提供这样的工具类实现这个需求。
2024-01-12 09:05:56 855
原创 Java--Spring项目生成雪花算法数字(Twitter SnowFlake)
分布式系统常需要全局唯一的数字作为id,且该id要求有序,twitter的SnowFlake解决了这种需求,生成了符合条件的这种数字,本文将提供一个接口获取雪花算法数字。以下为代码。
2024-01-11 00:13:28 1125
原创 Java--业务场景:在Spring项目启动时加载Java枚举类到Redis中(补充)
通过Java–业务场景:在Spring项目启动时加载Java枚举类到Redis中一文,我们成功将Java项目里的枚举类加载到Redis中了,接下来我们只需要写接口获取需要的枚举值数据就可以了,下面一起来编写这个接口吧。
2024-01-10 08:02:28 1295 1
原创 Java--业务场景:在Spring项目启动时加载Java枚举类到Redis中
项目具有很多的枚举类,而这些枚举类在前端页面中需要作为下拉框选项等组件被前端获取。为了后续获取枚举值更加方便快捷,我们在项目启动的时候将所有Java枚举类用一个hash存入Redis中,在提供一个接口,使得前端可以从Redis获取自己想要的枚举值。下文将讲解实现步骤。
2024-01-09 14:10:39 2348 2
原创 Java--业务场景:SpringBoot 通过Redis进行IP封禁实现接口防刷
在实际项目中,有些攻击者会使用自动化工具来频繁刷新接口,造成系统的瞬时吞吐量提高,给系统带来很大的压力。要保障服务的安全性,需要防止重要的接口被恶意刷新,接口防刷的方式可以通过设置验证码,IP封禁,安全参数校验等方法。本文主要采用Redis将同一时间内频繁访问同一接口的IP封禁一段时间的方式来防止接口被恶意刷新。
2024-01-08 14:03:07 1545
原创 Java--业务场景:获取请求的ip属地信息
很多时候,项目里需要展示用户的IP属地信息,所以这篇文章就记录一下如何在Java Spring boot项目里获取请求的IP属地。
2024-01-05 17:46:19 493
原创 Java--项目引入Swagger、knife4j文档,Swagger配置类设置,Swagger注解介绍
【代码】Java--项目引入Swagger、knife4j文档,Swagger配置类设置,Swagger注解介绍。
2023-12-14 17:58:02 293
原创 MySQL--查出某个特定值在哪些表的哪些字段中出现,并将结果存入新表
【代码】MySQL--查出某个特定值在哪个表的哪个字段中出现,并将结果存入新表。
2023-12-14 11:03:05 405
原创 MySQL--存储过程与存储函数的创建与调用示例
存储过程可以将多个SQL语句写在一起,作为一个集合,类似Java里的方法封装。通过 Call 关键字调用。存储函数和存储过程有些类似,都可以封装多条SQL语句,存储函数可以像MySQL函数一样灵活调用,而不需要采用Call关键字调用,但是相比存储过程,存储函数只能return 一列数据作为结果。
2023-11-29 11:14:20 616
原创 GraphQL -- GraphQL入门,与SpringBoot整合,并用Postman测试接口
GraphQL是一种用于 API 的查询语言,也是一个基于服务端的运行引擎。将GraphQL与Spring boot整合
2023-11-09 16:52:44 571 1
原创 Oracle--查出某个特定值在哪些表的哪些字段中出现,并将结果存入新表
【代码】Oracle--查出某个特定值在哪个表的哪个字段中出现,并将结果存入新表。
2023-06-05 13:51:07 2293
原创 MySQL--常见的窗口函数介绍以及使用语法
在解决实际问题的时候,会经常遇到需要对分组数据进行排序或者求和的情况,这种时候在Oracle,SQLserver等大多数数据库使用对应的窗口函数就可以解决,而mysql8.0版本之前是没有窗口函数的。好在mysql在8.0版本之后增加了窗口函数(终于不用写复杂的子查询啦!窗口函数可以对查询中的数据进行分组,这有点类似group by的分组操作,但不同的是,group by的结果会聚合成一条记录,而窗口函数则会将分组的结果置于每一条数据记录之中。此处介绍常见的窗口函数和使用的sql语法。
2023-03-29 21:41:04 774
原创 ThreadLocal原理和使用场景
ThreadLocal,即线程本地变量。其中存放的变量只属于当前线程,被其他线程所隔离。这种变量在线程的生命周期内起作用,减少了同一个线程内多个函数或者组件之间的一些公共变量的传递复杂度,同一个ThreadLocal所包含的对象,在不同的线程中有不同的副本,且其他的线程不可访问,因此不存在多线程之间共享的问题。
2023-03-21 22:16:57 128
原创 Redis--Redis的过期策略和内存淘汰机制
Redis的过期策略是:定期删除+惰性删除。获取当前内存淘汰策略:config get maxmemory-policy获取Redis能使用的最大内存大小:config get maxmemory设置内存淘汰策略:config set maxmemory-policy allkeys-lru设置Redis最大占用内存大小:config maxmemory 100mb 设置内存大小为100mb淘汰算法:最近最少使用算法
2022-12-04 13:57:37 394
原创 Java基础--new String()创建了几个对象,String字符串==比较
java基础,String字符串创建了几个对象,字符串对象的比较。
2022-11-21 10:10:42 383 1
原创 计算机网络--TCP与UDP(区别,TCP报文格式)的学习笔记
1. TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,即在收发数据钱 ,都需要与对面建立可靠的链接。2. UDP(User Datagram Protocol)用户数据报协议,传输时不需要建立连接。不保证数据传输的可靠性。
2022-11-05 09:00:00 834
原创 Java框架--SpringMVC(工作原理,常用注解)的学习笔记
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
2022-11-04 09:15:00 354
转载 计算机网络--IPV4地址详细解释
A:8位网络位,24位主机位组成。最小网络号是:1100 0000 0000 0000 0000 0000=192.0.0。B:16位网络位,16位主机位. 128.0.0.0-191.255.255.255。C:24位网络位,8位主机位。主机号为全0和全1的的地址都不能分配给主机或者路由。A类网络号0和127的不能分配给主机和路由器接口。A类网络号为0和127的都不能分配给主机或路由。A类:网络位为8位,主机位为24位。B类:网络号为16位,主机位为16位。C类:网络位为24位,主机位为8位。
2022-11-03 09:30:00 2731
原创 Java框架--Spring(事务,@Transactional)的学习笔记
事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。最经典的事务例子当属银行转账,A转账给B一百块的流程要经过两个操作,将A账户减少100块,B账户增加100块,若此时银行系统发生崩溃,可能发生A账户金额减少而B账户金额不增加,造成错误。故事务就是要保证这样的操作要么同时完成,要么同时失败。
2022-11-02 12:12:37 299
原创 Java框架--Spring(IOC,AOP)的学习笔记
Spring是JAVA企业级应用的开源开发框架,主要是用来简化JAVA企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。Spring贯穿表现层,业务层,持久层,且还能和其他框架无缝整合。
2022-11-01 14:10:35 465
原创 计算机网络--HTTP与HTTPS(协议,原理,状态码)的学习笔记
超文本传输协议(Hypertext Transfer Protocol,HTTP),是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。没有规矩不成方圆,人类社会需要制定规则来规范人们的行为,互联网世界也是如何。计算机通讯需要共同遵循一定的规则,这些规则就是协议HTTP 正是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。HTTPS基于SSL的HTTP协议。
2022-10-31 16:15:12 603 3
JDK 版本(8 12 14 17)
2024-01-25
redis压缩包:redis.7z
2024-01-18
PicGo:一个用于快速上传图片并获取图片 URL 链接的工具
2024-01-14
RedisOperation,Redis操作工具类
2024-01-09
Java-IpUtil通过请求获取IP信息的工具类
2024-01-08
Java - Redis操作的工具类RedisUtil
2023-12-13
Java - DateUtil 日期时间转换工具类
2023-12-13
RedisOperation,Redis操作工具类
2023-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人