- 博客(68)
- 收藏
- 关注
原创 大模型 - Langchain-Chatchat小白本地部署踩坑血泪史
小白尝试基于 Langchain-chatchat 部署本地大模型一路踩坑的辛酸经历记录
2024-06-12 22:29:44
1906
3
原创 python -【九】函数闭包&装饰器
本文主要针对 python 的函数闭包和装饰器案例进行演示,针对第四篇文章中 atm 案例进行改造,且提供了两种装饰器的写法
2024-05-30 11:14:26
176
原创 python -【七】异常,模块与包
本文主要介绍python的异常,模块,包的使用,提供了异常的基础语法,finally 块,包定义,包导入,三方包的安装教程,
2024-05-30 10:30:19
378
原创 python -【五】数据容器
本文主要是针对 python 内置提供的数据容器( list,set,tuple, dict, str)的基础用法讲解并提供了相应的案例,且针对不同容器的切片进行举例,最后对各个容器之间相互转换举例说明
2024-05-29 22:35:37
1533
1
原创 python -【四】函数
本文主要讲解了 python 的函数使用,包含函数参数,返回值,函数的注释,函数嵌套调用,局部变量 (global关键字),提供综合案例来巩固函数。并扩展了函数䣌参数传递,类型注解讲解
2024-05-29 22:28:21
1555
原创 idea - 插件之 codeium(安装篇)
由于目前有很多博客文章没有对 Idea 安装进行详细的讲解和遇到问题的处理讲解,所以我经过踩坑后,记录下安装记录。codeium 插件需要注册账户授权才能使用,所以这一步应该是去官网注册授权。这里千万不要下载错了,一定是浅绿色图标的才行,另外一个是企业版的,需要花钱。打开刚刚登录 codeium 官网使用的浏览器。关于插件作用就不多做介绍,接下来开始正文。Idea 版本:2021.3.2。会出现以下这个弹窗,复制里面的。账号,也可以直接授权登录。填写好自己的信息,点击。
2023-06-29 16:12:38
16485
16
原创 Delay - 如何用 Redis 打造一个延迟队列、广播 (目录)
目录概要文章1:系统概要设计,及数据结构的使用:https://editor.csdn.net/md/?articleId=124813414文章2:分析将会遇到的问题,及针对问题合理的解决和方案:https://blog.csdn.net/qq_38800175/article/details/124828534文章3:软件架构的设计概述: https://blog.csdn.net/qq_38800175/article/details/124840738文章4:开发阶段,为解决一些问题
2022-05-19 10:14:06
680
1
原创 Delay - 如何用 Redis 打造一个延迟队列、广播(附加工具)
Delay - 如何用 Redis 打造一个延迟队列、广播(附加描述)1. 工具当然在写一个项目的时候肯定是会造一些工具类的轮子的,在 Redis 延迟队列中,涉及到的工具如下:1.1 智能睡眠工具睡眠工具是根据搬运线程每次搬运之后返回队列中剩余的元素个数,来判断本次睡眠的时间长短,每次搬运完毕一次后,会调用 sleep(long) 方法,具体的睡眠时间是根据配置而定:区间(个数)睡眠时间(秒)051-1000.5101-5000.2> 5000
2022-05-18 17:59:05
660
原创 Delay - 如何用 Redis 打造一个延迟队列、广播(软件架构的设计)
Delay - 如何用 Redis 打造一个延迟队列、广播(软件架构的设计)文章1:设计概述文章2:风险、问题、方案通过前两篇文章的描述,将数据结构的使用和将会出现的问题及解决方案有所阐述,那么在本文中将会继续软件架构的设计,软件架构设计要满足设计原则,那么在这里就将从以下几个方面开始对架构的设计进行阐述:1. 面向用户1.1. 消息添加入口/** * 生产者定义 * * @author zyred * @since v 0.1 * @since v 1.0 更名 */public
2022-05-18 16:23:45
590
原创 Delay - 如何用 Redis 打造一个延迟队列、广播(风险、问题、方案)
Delay - 如何用 Redis 打造一个延迟队列、广播(风险、问题、方案)从 上一篇文章中 的描述,知道了数据结构与线程之间的关系,那么就针对延迟队列暴露的问题进行探讨和解决方案。1. 消息确认机制使用过消息队列的同学都知道消息队列都是需要消息确认的,那么消息确认的目的就是为了告诉服务器延迟队列中,这个消息已经被成功消费,可以进行删除消息了,对于 Redis 而言,所有的数据都是存储在内存中,而内存是非常稀缺的资源,数据不能一直占用内存,从而影响其他的应用程序正常的运行在 Redis 延迟队列中
2022-05-18 16:21:37
403
原创 Delay - 如何用 Redis 打造一个延迟队列、广播(设计概述)
如何用 Redis 打造一个延迟队列、广播(设计概述)前言:何为延迟队列?这个话题我相信在阅读本文的时候就已经有很明确的答案了,那么想要实现一个延迟队列,应该具备哪些条件,如何做到更加灵活,且拥有高扩展能力?下面开始一一分析1. Redis 数据结构的选择在此,大多数人都知道使用 Zset 可以做延迟队列,也有很多博客当中描述了相关的使用和设计,在这里我也会做详细的解释:1.1. Zset 的使用(超时列表)## 添加元素Zadd key score member# Zadd zyred
2022-05-18 16:20:24
534
原创 Redis - Springboot中集成多个Redis客户端统一管理
Springboot中集成多个Redis客户端统一管理前言: 我们都知道 springboot 中要么是集群管理,要么是对单个 Redis 管理,但是维度没有对多个 Redis 管理。在工作中我们都发现 Redis 如果是用集群存储,那每个 Redis 服务器上保存的数据都是相同,其实这并不是我想要的,而我想要的是每个 Redis 上存储的内容是不相同的。例如 Redis1 上存储 1、2、3 的 key,Redis2 上存储 4、5、6 的数据,客户端只通过一套统一的代码获取到对应的值,那么这种我们该怎
2021-12-20 10:49:39
1853
3
原创 HashMap - 核心原理与知识点记录(下)
HashMap get 方法执行逻辑分析HashMap - 核心原理与知识点记录(上)HashMap - 核心原理与知识点记录(中)1. get 方法的源码分析public V get(Object key) { Node<K,V> e; // 计算出 hash 值 return (e = getNode(hash(key), key)) == null ? null : e.value;}final Node<K,V> getNode(int
2021-10-15 16:27:21
200
原创 HashMap - 核心原理与知识点记录(中)
HashMap resize 方法执行逻辑及部分问题的分析HashMap - 核心原理与知识点记录(上)本文主要通过一下几个问题进行探讨:如何进行扩容的,扩容大小为什么总是2的幂次大小 ?为什么链表转红黑树的阈值是 8 ?1. 如何进行扩容的 ?HashMap 无论是扩容还是初始化,在 Java8 版本中,都是用的同一个方法 resize(),那么接下来进入代码:final Node<K,V>[] resize() { Node<K,V>[] oldTab
2021-10-15 13:43:22
269
原创 HashMap - 核心原理与知识点记录(上)
HashMap 核心原理与知识点记录数据结构可视化网站: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html本文主要通过一下几个问题进行探讨:什么是 HashMap?HashMap为什么要使用这样的数据结构?解决了什么问题?1.8 版本中hashcode 为什么要和 hash高16位做异或运算 ?HashMap 执行 put() 内部做了些什么事情 ?如何进行扩容的,扩容大小为什么总是2的幂次大小 ?采用红黑树的目的
2021-10-14 17:09:23
271
2
原创 Mybatis - 一文搞懂 Mybatis 究竟是如何解析SQL语句(下)
一文搞懂 Mybatis 究竟是如何解析SQL语句(下)前言:上一篇文章(一文搞懂 Mybatis 究竟是如何解析SQL语句(上)) 由于篇幅的问题,将下半部分挪到了本文中,那么本文将会接着上一篇文章进行详细分析 SQL 解析的过程,此文中会伴随着 DEBUG 模式的调试截图,通过图文的方式来描述表达一、解析 ${} 占位符紧接着上一篇文章,末尾 textSqlNode.isDynamic() 方法的解析,代码如下:public boolean isDynamic() { // 创建一个动态令
2021-07-23 08:23:58
675
3
原创 Mybatis - 一文搞懂 Mybatis 究竟是如何解析SQL语句(上)
一文搞懂 Mybatis 究竟是如何解析SQL语句(上)前言:本文紧接着 Mybatis是如何创建出SqlSessionFactory 一文进行详细分析,在上一篇文章中主要描述了 SqlSessionFactory 被创建的执行逻辑,那么在本文中,我们将详细探讨在创建出 SqlSessionFactory 的逻辑中,是如何解析 SQL 语句进行绑定的。那么本文中主要讲解上一篇文章 6 小节中 mapperElement(root.evalNode("mappers")); 这一句代码执行的逻辑,那么如果
2021-07-22 11:33:19
2195
2
原创 RabbitMQ - 网络单向畅通的情况进行数据同步
RabbitMQ - RabbitMQ同步两个SpringBoot服务数据参考:RabbitMQ整合SpringBoot API使用教程前言:在开发公司项目的时候,客户要求将两台服务的数据进行同步,条件是一台服务器在内网,一台服务器在外网,** 两台服务器上部署的代码完全一致 **, 内网可以访问外网,但是外网访问不了内网,在此条件下,诞生了本文将要描述的功能。思考1:数据同步中间件的采用方案1:数据库主从备份使用数据库主从备份,那么B服务器想要同步A服务器的就比较简单,但是A服务器同步B服务
2021-07-12 22:22:43
1239
7
原创 自定义表单开发过程及思路笔记
前言:由于公司项目中有一个自定义表单的需求,而本人却无类似开发经验,在朋友和同事的努力下,依然没有找到最佳的解决方案,后来自己根据自己对业务的了解和别人的思路借鉴,最终设计出了现在这款自定义表单的逻辑。项目环境:king base V8 (人大金仓数据库) ,Mybatis-Plus v3.4.2 ,spring-boot-2.2.5.RELEASE在本文中,主要阐述结合 VUEJS 动态表格的数据结构进行设计接口和数据库,在此之前,需要了解一下 VUEJS 动态表格核心思想 自定义的
2021-06-09 19:03:26
5831
9
原创 springboot - 自定义配置项实现boot项目的组件开启和关闭开发思路和开发过程记录
自定义配置项实现 boot 项目的组件开启和关闭开发思路和开发过程记录需求描述:由于 spring boot 项目拥有自动配置 (AutoConfiguration) 的功能,但是开发者不清楚 spring boot 配置原理的情况下,很难掌握到关闭某个组件在 spring boot 项目中自动配置。所以,在这种情况下,诞生了自定义配置项,来开启和关闭某个组件在 spring boot 项目中自动配置的功能该想法来自于项目开发中,多数项目组使用同一个脚手架进行二开的情况,很多项目根本就使用不到某些组
2021-04-20 10:04:50
1199
2
原创 Oauth2 - FastJson对Oauth2结果序列化问题的处理过程记录
问题的暴露起因: 在工作中,授权框架从 Spring Security 更换为 Oauth2,授权获取 token 的时候,发现登录后,使用 FastJson 和采用默认的Jackson2 颁发 token 返回结果格式完全不同,按照 Oauth2 官网提供的示例中的返回结果,对比使用 FastJson 返回结果完全不同,于是在这个情况下,决定先探一下 Jackson2 为什么会返回正确格式,而 FastJson 却存在问题。FastJson 错误格式{ "additionalInform
2021-04-15 15:33:56
1385
6
原创 J.U.C - CAS 操作 ABA 问题及解决方案
CAS 操作 ABA 问题及解决方案注意: 本文是博主自己的拙见,如发现描述或理解问题,可以联系博主随时修改。在上一篇文章中 《一篇文章看懂CAS》 描述到了 CAS 的工作原理,那么这篇文章来说一下 CAS 存在的 ABA 问题及如何解决什么是 ABA 问题 ?主内存中变量为 10,正常线程 t1 线程和错误线程 t2 线程同时 -5 那么 t1和t2 期望的值都是5,正常情况下只有 t1 才会正确执行,t2 会更新失败当线程 t1, t2 同时启动,并将主内存中的变量拷贝到自己工作空间
2021-01-08 14:19:04
160
原创 J.U.C - 一篇文章看懂CAS
一篇文章看懂CAS注意: 本文是楼主自己的拙见,如发现描述或理解问题,可以联系博主随时修改。什么是CAS?CAS (compare And Swap) 及比较和交换,那么问题来了。是什么和什么比较,又是什么和什么进行交换的,接下来一个简单例子进入正题:public class CasDemo { static int a = 0; public static void increment (){ a ++; } public static v
2021-01-08 11:41:21
237
1
原创 Mybatis(九) - 手写Mybatis简单版本 - V1
手写Mybatis简单版本本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.前言: 根据之前八篇博客的讲述,现在搞明白了 MyBatis 一系列的工作原理,那么就可以参照 MyBatis 自己写一个 半 ORM 框架,接下来先做分析,看看需要哪些对象、配置文件等等。开始前的准备项目依赖statementId 和 sql 的映射关系(mybatis 中是 mapper.xml),这里使用properties代替实体类全局配置对象 Configu
2020-12-31 15:39:40
187
原创 Mybatis(八) - Mybatis插件原理
Mybatis插件原理本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.回顾上一篇文章:《Mybatis手写分页插件》前言: 根据上一篇博客《mybatis手写分页插件》已经参与过一次手写插件的过程,那么在本篇文章中,主要讲解 mybatis 是如何实现插件对四大对象的不同方法进行拦截的...
2020-12-31 15:39:28
208
原创 Mybatis(七) - Mybatis手写分页插件
Mybatis手写分页插件本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.官网的解释mybatis 官网前言: 在官网中描述,Mybatis只支持拦截四大对象Executor、ParameterHandler、ResultSetHandler、StatementHandler 且每个对象被拦截的方法是有限的,具体参照官网,在本篇博客中主要讲解对 Executor 对象的 query 方法进行拦截,在官网中提供了一个小 dome,本篇博客则是根据小 d
2020-12-31 15:39:08
685
1
原创 Mybatis(六) - Mybatis是如何将结果封装成Java bean的
Mybatis是如何将结果封装成Java bean的本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.前五篇博客地址:Mybatis(五) - Mybatis是如何执行一条sqlMybatis(四) - Mybatis是如何对Mapper接口进行代理的Mybatis(三) - Mybatis是如何通过SqlSessionFactory得到SqlSession的Mybatis(二) - Mybatis是如何创建出SqlSessionFactory的
2020-12-31 15:38:53
1392
原创 Mybatis(五) - Mybatis是如何执行一条sql
Mybatis(五) - Mybatis是如何执行一条sql本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.注意: 本篇博客接着前四篇博客,主要是从第一篇博客的测试例子中开始延申,直到到源码的分析。前四篇博客地址:Mybatis(四) - Mybatis是如何对Mapper接口进行代理的Mybatis(三) - Mybatis是如何通过SqlSessionFactory得到SqlSession的Mybatis(二) - Mybatis是如何创建出
2020-12-31 15:38:31
420
原创 Mybatis(四) - Mybatis是如何对Mapper接口进行代理的
Mybatis(四) - Mybatis是如何对Mapper接口进行代理的本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.注意: 本篇博客接着前三篇博客,主要是从第一篇博客的测试例子中开始延申,直到到源码的分析。前三篇博客地址:Mybatis(三) - Mybatis是如何通过SqlSessionFactory得到SqlSession的Mybatis(二) - Mybatis是如何创建出SqlSessionFactory的Mybatis(一) -
2020-12-31 15:38:15
540
原创 Mybatis(三) - Mybatis是如何通过SqlSessionFactory得到SqlSession的
Mybatis(三) - Mybatis是如何通过SqlSessionFactory得到SqlSession的本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.《Mybatis(二) - Mybatis是如何创建出SqlSessionFactory的》《Mybatis(一) - Mybatis 最原始是使用方式》从 《Mybatis(一) - Mybatis 最原始是使用方式》 中 Junit 测试方法开始,通过 SqlSession session
2020-12-31 15:37:59
1120
原创 Mybatis(二) - Mybatis是如何创建出SqlSessionFactory的
Mybatis(二) 如何创建出SqlSessionFactory本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.从Junit 测试类进入Mybatis 源码中@Beforepublic void prepare() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResource
2020-12-31 15:37:29
569
2
原创 Mybatis(一) - Mybatis 最原始是使用方式
Mybatis使用及其执行流程本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.在项目开发中,使用Springboot整合Mybatis做数据库操作是一件非常简单的事情,这只是Mybatis为我们做了封装集成到Spring,把Mybatis的一系列对象交给Spring管理。通常使用JDBC做数据库操作的时候,我们的代码变得非常的臃肿,里面包含了Connection对象的创建销毁等等。总而言之,Mybatis都帮忙完成了很多功能,下面就看看Mybatis最初
2020-12-31 15:37:05
583
原创 Pattern(笔记) - 组合模式
组合模式本篇文章是通过看视频学习总结的内容, 如有错误的地方请谅解,并联系博主及时修改,谢谢您的阅读.何为组合模式?它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。适用场景:部分——整体场景,树形菜单,文件、文件夹的管理组合模式的优点:客户端调用简单节点数量自由控制组合模式的缺点:组合模式中,并不是面向得接口编程,而是面向抽象类编程如果采用透明写法来实现,那么不满足最少知道原则
2020-09-09 15:17:38
424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人