1. 建站初始化cmd命令1234567891011#会自动从https://github.com/hexojs/hexo-starter.git拉取源文件$ npx hexo init web#定位根目录下的web文件夹$ cd web#依赖安装$ npm install#Hexo Deploy 部署工具安装$ npm install hexo-deployer-git --save
2. hexo常用cmd命令123456789101112131415#清除生成的文件$ npx hexo clean#生成文件$ npx hexo generate#运行服务$ npx hexo server#部署到github仓库(需配置仓库地址)$ npx hexo deploy#将最新的索引推送至algolia$ npx hexo algolia
3. 博文命令1234#新建md文档$ npx hexo new '第一篇博客'#新建页面hexo new page "页面名称"
4. 主题更换
参考网址:参考1、参考2
123456789101112#卸 ...
一、概述
MVCC(多版本并发控制)是一种常用于数据库管理系统中的并发控制方法,旨在通过为每个事务提供数据的多个版本,从而避免并发事务间的数据冲突。MVCC的核心优势在于读操作无需加锁,从而实现读不阻塞写,同时写操作不会阻塞其他事务的读操作。这种方式特别适用于读多写少的应用场景,如 OLTP 系统。在传统的基于锁的并发控制(Lock-based Concurrency Control)中,多个事务在访问共享数据时需要加锁,这就会导致在高并发环境下的性能瓶颈。而MVCC通过在事务间维护数据的多个版本,能够显著提高并发性能。
二、MVCC的实现原理MVCC的实现依赖于三个关键要素:
隐式字段:每条记录都会附带一些额外的隐式字段,用于标识记录的版本信息。
版本链:每次更新数据时,都会生成新的版本并通过回滚指针链接到旧版本,形成版本链。
Read View:每个事务会在开始时生成一个快照(Read View),该快照决定了该事务在其生命周期内能够访问到哪些数据版本。
1. 隐式字段每行记录除了我们自定义的字段外,还有数据库隐式定义的 DB_TRX_ID, DB_ROLL_PTR, DB_ ...
开发总结
未读一、业务场景需求
当然如果不是单机服务还是比较推荐用redisson分布式锁来保证,效率会更优
1234567891011121314151617181920@Serveicepublic class ServiceOne{ //设置一把可重入的公平锁 private Lock lock=new ReentrantLock(true); @Transacational(rollbackFor=Exception.class) public Result func(Long seckillId,Long userId){ try{ lock.lock(); //执行数据库操作-查询商品库存数量 //如果库存数量不为0,则减少库存数量 //订单表中插入订单数据 }finally{ lock.unlock(); } }}
二 ...
由于近期Deepseek的大模型还是比较火,但是官方的请求比较拥挤,所以就出个教程来让大家本地运行模型把~
一、简介
DeepSeek是一家成立于2023年7月的人工智能基础技术公司,总部位于杭州,由知名量化资管机构幻方量化创立。公司专注于开发先进的大语言模型(LLM)及相关技术,致力于通过高效算法和优化模型架构,在AI领域迅速崛起。主要产品包括:
DeepSeek-R1:这是一款开源、免费且强大的推理模型,擅长处理复杂任务,如数学推理、代码生成、自然语言理解等。其性能在多个评测中优于其他模型,如OpenAI的GPT-4-o mini,并且成本远低于国际顶尖模型。
DeepSeek-V3:这是公司推出的最新版本模型,具备卓越的文本处理能力,适用于日常对话、专业问答和写作任务。其训练成本低至557.6万美元,性价比极高。
DeepSeek Chat:一款智能对话助手,提供创意写作、摘要翻译等功能。
DeepSeek Coder:专门面向程序员的智能编程助手,具备代码生成和优化功能。
二、模型配置推荐
模型参数
Win配置要求
Mac配置要求
适用场景
1. ...
开发总结
未读一、窗口函数查询
数据表结构
字段(user_invite表)
描述
id
主键编号
uuid
用户唯一编号
gift_quantity
金币数量
gift_type
礼物类型
state
状态(0.未成功1.成功)
create_time
创建时间
update_time
更新时间
涉及时间函数
函数
描述
to_days()
获取日期总共天数函数
now()
获取当前日期+时间函数,例如:2008-11-11 12:45:34
curdate()
获取当前日期函数,例如:2008-11-11
curtime()
获取当前时间函数,例如:12:45:34
dense_rank()
并列排序,不会跳过重复序号
rank()
并列排序,会跳过重复序号
row_number()
顺序排序,不跳过任何一个序号,就是行号
over()
窗口函数,必须定义别名,且只在高版本存在Mysql_5.7没有
partition by
为分组函数,跟group by雷同但只对其中某些字段做分组排序,例如: ...
开发总结
未读一、标题123456# 这是一级标题## 这是二级标题### 这是三级标题#### 这是四级标题##### 这是五级标题###### 这是六级标题
例子:这是一级标题这是二级标题这是三级标题这是四级标题这是五级标题这是六级标题二、字体1234*这是倾斜的文字***这是加粗的文字*****这是斜体加粗的文字***~~这是加删除线的文字~~
例子:这是倾斜的文字这是加粗的文字这是斜体加粗的文字这是加删除线的文字
三、引用123> 这是引用的内容>> 这是引用的内容>>>>>>>>>> 这是引用的内容
例子:
这是引用的内容
这是引用的内容
这是引用的内容
四、分割线1234--- ('-'或者'*'大于等于3个以上都可以)----********
例子:
五、图片1234图片alt就是显示在图片下面的文字,相当于对图片内容的解释。图片title是 ...
一、存在问题
同一台Nacos服务多个开发人员在本地开发,就会出现一个问题:也就是你本来想在本地调试你修改的代码,发现服务调到别的同事的服务上去了,导致调试很麻烦。例如:有甲和乙两个开发人员,分别启动了 A1、A2和B1、B2 服务,然后 甲就有可能调用调 B1 服务上,我预期的是甲调用在 A1 服务上 优先使用同IP服务(本地服务优先调用)
二、原生负载策略
对于原生子自带的负载均衡有以下几种,想要自定义负载均衡逻辑只需修改getInstanceResponse和getClusterinstanceResponse方法
负载均衡器
实现
RandomLoadBalancer
基于随机访问的负载均衡策略随机地从候选服务实例中选择一个实例来处理请求
NacosLoadBalancer
基于Nacos权重的负载均衡策略:根据服务实例的权重来决定请求的分配比例。权重越高的实例将获得更多的请求
RoundRobinLoadBalancer
基于轮询的负载均衡策略按顺序轮询每一个实例
三、解决方案
区分开发环境(优先走本地IP)和生产环境(集群优先策略)走不同 ...
一、简介
Stream流是Java 8中的一个新特性,它提供了一种处理集合和数组的方式。Stream流可以让我们以一种更加简洁、高效、可读性更强的方式来处理数据。Stream流可以用于过滤、映射、排序、聚合等操作,它可以让我们避免使用循环和条件语句来处理数据,从而让代码更加简洁易懂
二、流的分类stream(顺序流)
顺序流是一种单线程的流,它按照数据流的顺序依次处理每个元素,每个元素的处理都必须等待上一个元素的处理完成才能开始
parallelStream(并行流)
并行流是一种多线程的流,它可以将数据分成多个部分并行处理,每个部分都可以在不同的线程中处理,从而提高处理效率
流的分类
方法
特点
顺序流
stream()
顺序流是一种单线程的流,它按照数据流的顺序依次处理每个元素,每个元素的处理都必须等待上一个元素的处理完成才能开始
并行流
parallelStream()
并行流是一种多线程的流,它可以将数据分成多个部分并行处理,每个部分都可以在不同的线程中处理,从而提高处理效率,但可能会影响数据的顺序和一致性。因此在使用并行流时需要注意线程安全和数据一致 ...
1. 简介
回溯算法(又名决策树)是一种系统地搜索问题的解的方法,也称为试探法。它的基本思想是从一条路往前走,能进则进,不能进则退回来,换一条路再试。回溯算法实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解。当发现已不满足求解条件时,就“回溯”返回,尝试别的路径
2. 例子
例子1:找出给定数组:[2,3,6,7]中和为:target = 7的组合,解:[[2, 2, 3], [7]]
12345678910111213141516171819public static void backTrace(int[] nums, List<Integer> path, List<List<Integer>> result) { //已走路径path的数组长度等于nums的长度,表示走到叶子节点,所以加到全排列集合 if (nums.length == path.size()) { result.add(new LinkedList(path)); return; ...
由于近期网站域名被墙无法访问,就干脆也整理一份教程出来,帮大家少走弯路,以下教程均在阿里云服务器docker中部署,无需docker部署的也可参考Heo作者的Hexo博客部署到VPS教程,也蛮详细的
一、部署方案整个Hexo部署VPS流程:
方案一:
将 Hexo 项目上传到 VPS 上面后执行 hexo server,之后配置 Nginx 反向代理,让域名指向http://localhost:4000
方案二:
将 Hexo 在本地通过 hexo generate 生成静态文件,在通过 hexo deploy部署到 VPS 上面,使用 Nginx 直接做 Web 服务器
对比:
相比两种方案,方案一每次写博客与更新博客时候的操作会很繁琐。所以我们使用方案二进行部署,这样既可以将静态文件 deploy 到 VPS 上,也可以上传到 Github 上用作备份,操作性和安全性上都要胜于前者,而对于方案二常用的又有git hook和 rsync两种自动部署解决方案,本文主要介绍 git hook 部署过程
自动部署方案
优点
缺点
git hook
集成在Git ...