- 博客(150)
- 收藏
- 关注

原创 福州萨氏家族:跨越百年的家国传承与数字时代的创新回响
当第八届数字中国峰会的璀璨光芒再次聚焦福州,这座承载千年历史的古城深处,雁门萨氏跨越数百年的家族史诗,正激荡起全新的时代回响。从甲午海战中萨镇冰为“海权图强”浴血奋战,铁血舰长萨师俊与中山舰生死共存,到萨本栋在抗战硝烟里铸就厦大“南方之强”的美誉,再到萨师煊在数字领域的荒芜之地夯筑起坚实的“信息基石”,这个家族以代际接力的坚韧与担当,书写出一部波澜壮阔的中国近代自立自强奋斗史。榕城朱紫坊萨氏大院那历经岁月洗礼、斑驳陆离的砖瓦,默默见证着从这里走出的巍峨身影,如何让家族血脉始终与中国变革的时代浪潮同频共振。
2025-06-05 14:52:52
10162
42

原创 实战分享:如何用 Bright Data + RPA 打造一个自动化电商情报系统
通过实际体验不难发现无需手动切换平台比价,无需人工整理 Excel 数据,用户只需在影刀 RPA 界面输入商品名称,系统便会自动触发 Bright Data 的全球数据采集网络,突破电商反爬机制,在 10 分钟内将亚马逊等多平台的商品价格、销量、评价等数据结构化抓取并存储至云端。
2025-05-25 19:15:11
19354
18

原创 如何使用蓝耘快速部署 DeepSeek R1 模型
DeepSeek R1 模型是专为自然语言处理(NLP)和其他复杂任务设计的先进大规模深度学习模型 ,其高效的架构设计是一大亮点,能够更高效地提取特征,减少冗余计算。这意味着在处理海量数据时,它能快速地抓住关键信息,极大地提升了数据处理速度,大大缩短了训练时间。比如在处理长篇文本时,它可以迅速提取出核心要点,比一些传统模型快上数倍。强大的泛化能力也是 DeepSeek R1 的一大优势。它经过大量丰富多样的数据训练,对不同任务和场景都有很强的适应能力。
2025-02-11 09:49:23
13218
85

原创 Nacos 的介绍和使用
与 Eureka 一样,Nacos 也提供服务注册和服务发现的功能,Nacos 还支持更多元数据的管理, 同时具备配置管理功能,功能更丰富。
2025-02-04 09:31:25
15344
70
原创 当分布式数据库遇上传统企业:为什么互联网良药成了 “苦药”?
最后,还是那句话:技术的选择要回归业务本质,而非追逐技术潮流。明白这个道理,我们就掌握了消除成见、翻越大山的核心奥义。怎么样?您的数据库选对了吗?
2025-05-21 18:06:45
6408
65
原创 分布式锁的简单实现
在分布式系统中,也会涉及到多个节点访问同一个公共资源的情况,和 Java 中多线程的锁不一样,由于分布式系统中涉及到多个进程多个主机,所以说 Java 中 synchronized 就不合适了。
2025-03-03 20:31:38
3748
17
原创 Redis 中如何保证缓存与数据库的数据一致性
如果说先删除缓存,那么会出现下面这种情况,当线程 1 删除缓存之后,由于网络延迟,线程 2 先执行查询操作,没有查询到目标数据之后,就会从数据库中把旧的数据写入缓存中,然后线程 1 再更新数据库,此时虽然数据库中是更新之后的数据,但是之后再进行查询的时候,由于缓存中已经又重新被写入了旧数据,此时就会出现数据不一致的问题。先把数据写入到数据库,然后再删除缓存,这种方式其实还是存在问题,如果删除缓存时删除失败了,那么之后查询到的还是旧数据,还是存在数据不一致问题。
2025-03-02 17:42:45
5791
26
原创 Spring Cloud Gateway 网关的使用
全局过滤器需要实现 GlobalFilter,Ordered 接口,然后重写 filter 和 getOrder 方法@Slf4j@Component@Override//Pre执行逻辑//Post执行逻辑}));@Override//设置优先级关于 Mono 方法参数的说明:之后再去发起请求,自定义的全局过滤器已经生效了如果需要自定义可配置的 GatewayFilter,就需要创建一个过滤器工厂,根据读取到的配置来构造对象定义一个类用来存储从配置文件中读取到的配置信息@Data。
2025-02-24 19:33:21
7279
22
原创 雷龙 CS SD NAND,比 TF 卡更小更稳的存储神器
SD NAND 俗称贴片式 T 卡、贴片式 TF 卡、贴片式 SD 卡、贴片式内存卡、贴片式闪存卡等。尽管 SD NAND 和 TF 卡称呼相近,但它们存在本质区别,具体差异见下表SD NAND 与 TF卡的区别:(看图表)
2025-02-23 19:44:31
1018
94
原创 OpenFeign 实现远程调用
引入依赖之后就可以直接调用,不用再写继承了,只需要在启动类上添加扫描路径,有两种方式可以添加扫描路径,一种是使用 basePackages 直接指定要扫描的路径,另一种是通过 clients 来指定具体的客户端接口类。首先还是把 Feign 的 Client 抽取为一个独立的模块,并把涉及到的实体类等都放在这个模块中,然后打成 jar 包,服务消费方只需要引入依赖即可。注解来定义对远程服务的调用,value 指的是要调用的服务名称,path 指的是 Feign客户端 的统一路径。
2025-02-22 10:29:24
1298
8
原创 Spring Cloud LoadBalancer 负载均衡
在进行获取服务时发现每次获取到的实例并不是均衡的,原因就是每一次从 eureka 中获取的服务列表中实例的顺序可能是不一样的,上面的 product-service 服务的三个端口号是 9090, 9091, 9092,每次获取到的顺序可能不一样,在之前的代码中是通过 get(0) 来获取实例列表中的第一个实例,也就需要对之前写的代码进行修改。的关系,那么首先需要一个计数器来计算当前是第几次请求,此外还需要固定获取到的实例列表中的顺序(也就是无论后面发起几次请求,获取到的实例列表都是一样的)
2025-02-20 13:07:31
1905
9
原创 Redis 持久化
Redis 存储数据时,对于同一份数据,分别在内存和硬盘上都进行了存储,当查询某个数据时,直接从内存中读取,硬盘的数据用来在 Redis 重启时恢复内存中的数据,Redis 提供了两种内存持久化的策略。
2025-02-13 16:19:32
1680
13
原创 Redis 事务的介绍
弱化的原子性:Redis 没有 “回滚机制”,只能批量执行操作,但如果其中一个操作失败,不会恢复到初始状态。不保证一致性:不涉及 “约束” 也无回滚机制。与 MySQL 事务运行前后结果都合理有效、不会出现中间非法状态不同,Redis 在这方面没有类似严格保证。不需要隔离性:由于 Redis 单线程处理请求,不会并发执行事务,所以不存在隔离级别相关问题。不需要持久性:数据保存在内存中,是否开启持久化由 redis - server 自身决定,和事务无关。Redis 事务通过MULTI。
2025-02-09 14:52:45
846
6
原创 【Redis】set 和 zset 类型的介绍和常用命令
set 类型和 list 不同的是,存储的元素是无序的,并且元素不允许重复,Redis 除了支持集合内的增删查改操作,还支持多个集合取交集,并集,差集zset 保留了 set 集合中不能有重复成员的特点,与之不同的是,zset 中的元素是有序的,集合中的每一个元素都有一个唯一的浮点类型的分数(score)与之关联,依次来进行排序,使得有序集合中的元素可以维护有序性,虽然集合中的元素是不能重复的,但是分数允许重复。
2025-01-31 17:30:49
1514
16
原创 Eureka 服务注册和服务发现的使用
这三种特性是不能同时兼顾的,比如,在主数据库和从数据库同步数据的过程中网络出现了问题,那么这个过程就会被拉长,如果保证可用性,那么用户此时获取到的信息就不是强一致性的数据,在微服务架构中, P 是必须要保证的,所以 C 和 A 只能兼顾一个,也就是 CP 架构和 AP 架构。如果此时需要实现一个查询订单的功能,查询结果中需要包含商品信息,由于上面的两个子工程现在是分开的,并不是像之前一样写在一个工程中,那么现在就不能直接调用查询的结果了。
2025-01-30 09:17:04
3633
75
原创 【Redis】List 类型的介绍和常用命令
Redis 中的 list 相当于顺序表,并且内部更接近于“双端队列”,所以也支持头插和尾插的操作,可以当做队列或者栈来使用,同时也存在下标的概念,不过和 Java 中的下标不同,Redis 支持负数下标,-1 表示倒数第一个元素,-2 表示倒数第二个元素,和 Java 中的 List 相同的是,列表中的元素是有序的,并且允许重复。
2025-01-29 11:31:28
1384
12
原创 【Redis】hash 类型的介绍和常用命令
Redis 中存储的 key-value 本身就是哈希表的结构,存储的 value 也可以是一个哈希表的结构这里每一个 key 对应的一个 哈希类型用 field-value 来表示。
2025-01-28 09:15:52
1069
6
原创 【Redis】 String 类型的介绍和常用命令
Redis 中的 key 都是字符串类型Redis 中存储字符串是完全按照二进制流的形式保存的,所以 Redis 是不处理字符集编码的问题,客户端传入的命令中使用的是什么编码就采用什么编码,使得 Redis 能够处理各种类型的数据,包括文本、图片、音频等二进制数据。
2025-01-25 11:33:41
1107
15
原创 【2024 年度总结】从小白慢慢成长
的时候,那时候也是意识到自己一直在摆烂,每天总是在打游戏,学校教的C语言也没有认真学,但这样下去肯定不行,毕竟自己也不是富二代,以后还是需要靠技术吃饭的,就开始去B站找视频学习,于是在学习C语言的过程中就知道了鹏哥,鹏哥给我们说可以通过写博客的方式把自己学到的知识记录下来,就像通过文字的形式来把自己学到的知识讲给别人一样,之后也可以当做以后的复习资料。也是出于自身的虚荣心,当时对粉丝数有着一定的执念,就想着如何快速涨粉,就卷了起来,通过登上全栈热榜,粉丝的增长速度也提升了不少,阅读量也上去了。
2025-01-20 09:18:04
14134
107
原创 Linux 简单命令总结
按下回车可以继续阅读剩下的部分,b 键可以查看上一页,如果直接想退出的话 ctrl + c 就能退出了,可以输入 / 后面跟要查找的内容,然后按下回车就会跳转到目标位置。使用 less 的话文件的内容是不会留在命令行中的,就像打开了一个记事本进行查看一样,还支持搜索功能,也可以输入 / 查找的内容,按下回车就会把所有搜索到的都标记出来。在查看了文件内容之后,命令行被很多其他东西占满了,就可以使用 clear 命令来清理一下屏幕,之前输入的内容还是在上面,通过滚轮或者上键可以查看之前的内容。
2024-12-12 10:41:15
7528
135
原创 如何将 JavaWeb 项目部署到云服务器
服务未启动:可以使用来查看程序是否运行使用curl 项目路径来看是否返回有 html 页面,如果有返回,那么就说明程序启动成功了, 可能是端口号未开放如果没有启动成功,需要查看对应的日志,可能是数据库不存在或者数据库密码不正确,jdk版本 ,mysql 没有设置密码等问题http 端口未开放,如果说云服务器的防火墙打开了,还需要再打开防火墙的端口号可以使用命令来查看防火墙是否开启,下面显示的是未开启状态如果说在部署之后又发生了错误,要重新部署,就需要先把对应的进程结束掉,可以先通过。
2024-12-08 15:42:32
1962
31
原创 如何通过 JWT 来解决登录认证问题
JWT 令牌本身是一个字符串,包括头部,载荷,签名三部分,将信息作为 JSON 对象进行传输头部:包括令牌的类型和使用的哈希算法载荷:存储的有效信息,为自定义内容签名:用于防止 JWT 内容被篡改(并不是防止被解析),只要被篡改,令牌就会失效。
2024-12-02 09:56:19
1716
33
原创 Spring 事务和事务传播机制
NESTED 是如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行,所以说 A 和 B 不是同一个事务,那么当 B 的一个方法出现异常时进行回滚,另一个 A 调用的方法是不受影响的,也印证了这两个不是同一个事务,确实是创建了一个嵌套事务。一个事务的操作流程包括了,开启事务,执行事务操作,提交事务或回滚事务,对于回滚事务来说,如果程序在执行过程中出现了错误,那么此时就需要执行回滚事务。此时就是无论 A 有没有事务, B 都新创建事务,所以当 B 的一个方法有异常时,是不会影响其他方法的。
2024-11-30 08:19:34
6298
141
原创 Spring AOP 的实现和切点表达式的介绍
当在一个项目中定义了多个切面类时,并且这些切面类的多个切入点都匹配到了同一个目标方法,那么目标方法执行的时候,这些切面类中的通知方法都会执行,那么这时就会有一个优先级,哪个切面类先执行。这样提取出来,其他方法想要调用直接写上方法名称即可,和定义的常量类似,那么同一个类下可以直接调用,如果是不同的类的话需要把全限定名写上,并写明是 xx 类的 xx 方法。在上面的代码中还存在一个问题,每次写一个方法都需要写一个切点表达式,如果说更换切点的话,那么所有的切点表达式都要修改一下,就可以通过。
2024-11-28 08:37:59
2401
23
原创 Spring Boot——统一功能处理
拦截器主要用来拦截用户的请求,在指定方法前后,根据业务需要执行设定好的代码,也就是提前定义一些逻辑,在用户的请求响应前后执行,也可以在用户请求前阻止其执行,例如登录操作,只有登录成功之后用户才可以访问应用页面,这时就可以使用拦截器来拦截前端发来的请求,判断 session 中是否有登录用户的信息,如果没有就拦截,有的话就放行。能匹配 /book,/book/addBook,/book/addBook/2,不能匹配 /user/login。能匹配 /user,/user/login,/user/reg。
2024-11-26 10:15:17
2261
27
原创 丹摩 | 利用 CogVideoX 生成视频
接下来,配置数据硬盘的大小,每个实例默认附带了 50GB 的数据硬盘,首次创建可以就选择默认大小 50GB,也是足够用的,可以看到,平台提供了一些基础镜像供快速启动,第一次创建可以选择基础镜像,如果后续有保存镜像,可以在我的镜像中选择保存好的镜像启动,镜像选择 PyTorch2.3.0、Ubuntu-22.04,CUDA12.1 镜像。首先登录丹摩平台,进入创建页面后,首先在实例配置中选择付费类型,一般短期需求的话可以选择按量付费或者包日,我们这里做个演示就直接选择按量付费了,长期需求可以选择包月套餐;
2024-11-25 08:20:21
3223
22
原创 MyBatis Plus 快速入门
Mybatis plus 提供的方法可能不能满足一些其他需求,这是就可以自定义 sql,第一种实现方式还是之前 Mybatis 的写法,直接把 sql 语句写在注解里,或者是使用 XML 的方式除此之外,Mybatis plus 也提供了另一种构造自定义 sql 的方式,来看官方文档中的介绍@Mapper通过引入了 Wrapper 对象生成的 SQL 片段,来实现自定义 sql,然后调用方法,传入一个 Wrapper 对象XML 方式也是一样的,把注解中的 sql 语句写到 XML 中就可以了。
2024-11-23 08:17:33
2380
18
原创 MyBatis——#{} 和 ${} 的区别和动态 SQL
动态更新操作也是,当后面有值的时候就更新,没有值的时候就不更新,<set> 标签的作用和 where 类似,也是后面有值的话就生成 set 关键字并且去除右边的逗号,但是后面设置的内容也不能全部是空,此时就算没有生成 set 标签,但是前面还有一个 update 关键字,最后的 SQL 语句还是有问题。我们在填一些表单的时候应该会见到下面这种,有的是必填项,有的是选填项,对于选填项来说,如果没有填,肯定是需要赋一个默认值的,比如 null,那么就需要动态 SQL 来实现这样的功能。
2024-11-20 12:43:01
3938
35
原创 【动态规划】完全背包问题
初始化:和 01 背包那里一样,i = 0 时,表示有 0 个物品,那么 dp[0][j] 这一行就都是 0,而 j = 0 时,由于只有 j >= v[i] 才能进行接下来的判断,所以 j = 0 这一列不用初始化,不会判断到 j < 0 之外的数据。状态转移方程和初始化,返回值都和上面的完全背包问题类似,只不过这道题要求的是最小值,所以初始化时如果凑不出 j ,要初始化为一个很大的数,这样才不会影响取最小值。dp[i][j] 表示从 i 个完全平方数中挑选,总和正好等于 j 的最少的个数。
2024-11-19 07:56:54
1060
10
原创 丹摩|丹摩智算平台深度评测
随着人工智能和大数据技术的快速发展,越来越多的智能计算平台涌现,为科研工作者和开发者提供高性能计算资源。丹摩智算平台作为其中的一员,定位于智能计算服务的提供者,支持从数据处理到模型训练的全流程操作。丹摩智算平台提供了丰富的硬件资源支持,包括多种配置的CPU与GPU实例,并且支持多框架兼容,TensorFlow、PyTorch等主流深度学习框架。还能够实现智能调度,高效分配计算资源,优化任务执行时间。除此之外,平台的注册与登录流程非常简便,仅需通过邮箱验证即可完成账户创建。
2024-11-17 10:54:31
1617
119
原创 【动态规划】01 背包问题
1049. 最后一块石头的重量 II这道题其实还是可以转化为 01 背包的模型的,每两个石头碰撞一下,也就是这两个石头大的减小的的差再继续和其他石头碰,先假设出来一种情况,然后最后的化简结果其实就是给数组中的所有数都加上正号和负号,然后使最终的和最小,这其实和上一题的目标和差不多,这道题也正好符合 01 背包模型,也就是在数组中选出一些数,使这些数的和尽可能接近总和的一半,那么和剩下的相减就能减出最小值了代码直接套用 01 背包模版就行了,最后的返回值根据题目要求即可。
2024-11-16 07:55:41
1611
7
原创 二维费用背包问题
还是分为选和不选第 i 个元素,如果不选就是继承上一个状态 dp[i - 1][j][k],如果选,由于总人数不能超过 j ,是需要 j >= g[i] 的,也就是 j - g[i] 不能小于 0,而总利润至少为 k ,所以 k - p[i] 是可以小于 0 的,但是数组的下标也不能是负的,所以可以把总利润至少为(之前的负数)改为总利润至少为 0,题中求的是总的方案数,所以最终结果是这两种情况的和。填表顺序:由于需要用到 i - 1 的状态,所以需要保证 i 从小到大遍历,然后再从小到大遍历 j 和 k。
2024-11-15 08:02:19
745
9
原创 【动态规划】两个数组的 dp 问题
当 s1[i] 和 s2[j] 相等时,那么最长公共子序列一定是以这两个位置为结尾的,所以就可以直接取 i - 1 ~ j - 1 区间内再去找,dp[i - 1][j - 1] 的结果加上确定好的 1 即可,如果不相等的话,就可以去 s1 的 i - 1 位置和 s2 的 j 继续找,或者是从 s1 的 i 位置和 s2 的 j - 1位置找,i - 1, j - 1 的情况已经被包含在这两种情况中了,所以可以不考虑这种情况,上面的情况找出最大值就是不相等时的 dp[i][j]
2024-11-14 08:07:19
1014
8
原创 MyBatis——增删查改(XML 方式)
使用注解的方式主要是完成一些简单的增删查改功能,如果要实现复杂的 SQL 功能,还是建议使用 XML 来配置映射语句,将 SQL 语句写在 XML 配置文件中。对象的 “id” 属性上,虽然说写不写都可以,但是建议还是写上,同时,其他 java 对象的属性名和 MySQL 中的字段对应的也建议写上。如果要操作数据库,需要做以下的配置,与注解方式不同的是,还需要配置一下 XML 文件的路径,这样才能获取其中的配置信息。Mybatis 是把 SQL 查询到的信息根据参数的映射来赋值的,只需要把。
2024-11-12 08:06:07
2139
109
原创 腾讯云双十一重磅优惠来袭,带你掌握最强攻略密码
首先就是,同一个账号是可以参与不同的团的,但是一个团是不能用两个相同的账号参加的,仅需两个人就能拼团成功,这不拉上小伙伴一起冲一下,没有小伙伴怎么办呢,官方也贴心的为大家准备好了拼团群,大家可以在里面找拼团的朋友一起拼,这就意味着看到心仪的云产品都能通过拼团来获取最大的优惠,不过需要注意一下,发起拼团之后如果没有邀请人参团还是会失败的,两个人就能拼团,几乎是无门槛了,也不会出现失败的可能。两万元的代金券,这不狠狠地把团长比下去,或者自己做团长,要不就合作一把,把代金券白嫖到手,岂不是美滋滋。
2024-11-11 12:41:17
3521
122
原创 丹摩|新手入门指南
丹摩智算平台是一款功能强大的计算平台,专为大规模AI模型的开发和部署设计。它支持从数据集上传、模型训练到评估部署的一体化流程,适用于自然语言处理(NLP)、计算机视觉(CV)等多个领域的任务。主要特色:大规模训练支持:可以灵活配置训练资源,满足不同规模的模型需求;分布式计算:支持多机多卡的分布式训练,加速模型优化过程;实时监控与调试:可视化界面方便用户监控训练进度,支持在线调试和参数调整;一键部署服务:训练完成的模型可以直接发布为API服务,实现快速部署。
2024-11-08 21:37:38
1237
29
原创 MyBatis项目的创建和增删查改操作
介绍了Mybatis的项目如何创建,配置文件出现中文乱码如何解决,还有使用Mybatis进行增删查改如何操作
2024-11-08 08:06:57
2134
123
原创 Spring Boot——日志介绍和配置
在前面的学习中,控制台上打印出来的一大堆内容就是日志,可以帮助我们发现问题,分析问题,定位问题,除此之外,日志还可以进行系统的监控,数据采集等日志门面就相当于是淘宝 APP,日志实现相当于入驻的商家,在使用时是使用淘宝,真正提供商品的还是商家也就是使用时使用 SLF4J,真正实现功能还是日志实现的框架SLF4J 就是其他日志框架的门面,相当于提供日志服务的统一 API 接口,并不涉及到具体的日志逻辑实现,而是一个抽象层,对日志框架制定的一种规范、标准、接口。
2024-11-05 08:24:16
5683
142
原创 Spring Boot——配置文件
当应用程序启动时,Spring Boot 会自动从 classpath 路径找到并加载 application.properties 和 application.yml (application.yaml) 文件。properties 是以键值的形式配置的,key 和 value 之间以“=”连接,单词之间通过 ' . ' 来分割。并且配置文件的名称是不能修改的,只能叫 application。注解来实现的,其中填的参数和配置文件中对象的名称是对应的。yml 是 yaml 的简写,使用方法是一样的。
2024-11-04 08:09:07
1606
22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人