自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (3)
  • 收藏
  • 关注

原创 Go-zero从入门到精通(一)

服务和服务之间一般使用 rpc 通信,最常使用的就是 grpc,接下来就是使用 protoc-gen-go 将上述的 proto 文件生成 go 代码。创建对 user 服务的rpc调用,order/internal/svc/servicecontext.go。这样就搞完,可以启动 etcd,再分别启动user服务和order服务。模块,写一个接口,获取订单信息,其中订单信息中需要携带用户信息。用户在查询订单时,同时需要获取用户信息。访问 api/order/get/1。填充 logic 逻辑。

2023-10-16 20:26:56 445

原创 Error: node: unknown or unsupported macOS version: :dunno 错误解决

命令,将浅复制的存储库转换为完整的存储库,即将历史记录中所有的提交、分支和标签都拉取到本地。1)查找homebrew-cask安装位置。再安装node就可以了。

2023-09-30 16:45:51 3937

原创 TCP 的粘包和拆包以及解决方案

TCP 是一个传输协议。TCP 在发送数据的时候,往往不会将数据一次性发送。如下所示:而是将数据拆分成很多个部分,然后再逐个发送。像下图这样:那么为什么 TCP 协议不一次性发完所有的数据?比如我们要传一个大小为 10M 的文件,对于应用层而言,就是一次传送完成的。而传输层的协议为什么不选择将这个文件一次发送完呢?首先这个有很多原因,比如为了稳定,降低整体任务出错的概率,以及减小底层网络处理的压力,再比如说为了效率,网络中有时候存在着并行的路径,拆分数据包就能更好地利用这些并行的路径。

2023-03-31 20:52:41 983 1

原创 HTTP状态码301和302区别

Http状态码301和302。

2023-01-31 21:37:25 490

转载 Notion快捷键

如果你不是一个快捷键爱好者,我们理解。如果你可以记住下面几个简单的命令,那么你仍然可以像一个 Notion 高级用户一样在 Notion 上进行操作cmd/ctrlncmd/ctrlshiftncmd/ctrl点击cmd/ctrlpcmd/ctrl[cmd/ctrl]cmd/ctrlshiftl🎒你可以在 Notion 页面或者电脑其他任何地方使用表情选择器来进行行内表情输入!下面是不同平台调用的快捷键:Mac:ctrl+cmd+空格+.或者+;

2022-12-31 20:48:47 2967 1

原创 Laravel whereHas多个数据源问题

的用法,可以参考:https://learnku.com/docs/laravel/9.x/eloquent-relationships/12252#d361f0。因为 A表和 B表分别在不同的数据库里,也就是不在同一个数据库里。我们可以把 sql 打印出来。这样的 sql 肯定跑不通嘛!单条SQL不支持跨库查询。举个例子,有这样两个表,分别存在不同的数据库里。是仅支持单条 sql 查询的,也就是说。本身是不支持跨库查询的。的查询约束,但是这里有一个问题,, 遇到了一个问题,如下。

2022-11-30 22:51:44 977

原创 PHP修改完代码没有立马生效?

缓存的字节码,才能让它发现 PHP 文件的变动。为 缓存过期时间配置,设置 60 秒后表示脚本 60 秒后才会去更新改动,改为 0则每次修改都能及时生效,或者修改成其它的时间。的全部设置:https://www.php.net/manual/zh/opcache.configuration.php。会自动在内存中缓存预先编译好的PHP字节码,如果缓存了某个文件的字节码,就执行对应的字节码。从PHP 5.5.0开始,PHP内置了字节码缓存功能,名为。,默认情况下,PHP会开启一个。值为0,需要小心,因为。

2022-10-23 22:26:31 1456

原创 Python解决乱码 \x222\x22,\x0A

今日查一下nginx日志,发现有数据乱码了?使用python来处理这个乱码。

2022-09-29 21:31:12 1274

原创 一文读懂“什么是同源”

此时会出现跨域不允许访问。同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。,“元”,是指一些事物组合在一起形成一个整体,比如(1,2)叫二元,(1,2,3)叫三元)。的文档或者它加载的脚本与另一个源的资源进行交互,它能够帮助阻隔恶意文档,减少可能被攻击的媒介,可以使用。没有同源策略可能会造成CSRF攻击(跨站请求伪造)【攻击者盗用了你的身份,以你的名义发送恶意请求。在浏览器上当前访问的网站向另一个网站发送请求获取数据的过程就是。决定的,是一个重要的浏览器安全策略,用于限制一个。..

2022-08-31 22:20:09 2046

原创 awk入门教程

awk不仅是一个数据处理工具,而且是一门解释性的编程语言。它提供了十分强大的功能:支持流程控制、数学运算符,内置函数等。但是大多数时候

2022-07-31 23:29:19 1382

原创 ElasticSearch 报错 FORBIDDEN/12/index read-only / allow delete (api)

ES在使用的时候发现,报错信息查阅 官方文档发现,当 Elasticsearch 认为磁盘空间不足时会发生这种情况,因此它将自己置于只读模式。默认情况下,Elasticsearch 的决定基于可用磁盘空间的百分比,因此在大磁盘上,即使有许多 GB 的可用空间,也会发生这种情况。默认情况下,洪水阶段的水印为 95%,因此在 1TB 驱动器上,您至少需要 50GB 的可用空间,否则 Elasticsearch 会将自身置于只读模式。执行如下语句,...

2022-06-28 22:10:14 640 1

原创 Supervisor 入门使用

Supervisor 是一个用 Python 写的一套通用的进程管理程序,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)并监控进程状态,除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。Supervisor 可以运行在 Linux、Mac OS X 上。如前所述,supervisor 是

2022-05-31 22:30:01 353

原创 使用 charles 进行抓包

一、开始前的准备开发环境:Mac 系统Android 手机Charles 软件 4.6.3Charles 官网下载Charles 破解软件二、抓包配置1. Charles抓包代理配置Proxy ---> Proxy Settings 默认端口是 8888,根据实际情况可修改。当然,如果想要配置 https2. Android手机抓包配置首先查看本机的 ip 地址:Help ---> Local IP Address[外链图片转存失败,源站可能有防盗链机制

2022-04-29 16:40:59 11460

转载 Sublime Text 快捷键(MAC版)

符号说明符号说明⌘command⌃control⌥option⇧shift↩enter⌫delete打开/关闭/前往快捷键功能⌘⇧N打开一个新的sublime窗口⌘N新建文件⌘⇧W关闭sublime,关闭所有文件⌘W关闭当前文件⌘P跳转、前往文件、前往项目、命令提示、前往method等等(Goto anything)⌘⇧T重新打开最近关闭的文件⌘T前往文件⌘⌃P

2022-03-31 20:53:44 1313

原创 简单说下几种 key 的淘汰策略,redis 里的 lru 算法,什么时候会触发?实现细节是什么?

当 Redis 内存超出物理内存限制时,内存的数据会开始和磁盘产生频繁的交换 (swap)。交换会让 Redis 的性能急剧下降,对于访问量比较频繁的 Redis 来说,这样龟速的存取效率基本上等于不可用。在生产环境中我们是不允许 Redis 出现交换行为的,为了限制最大使用内存,Redis 提供了配置参数 maxmemory 来限制内存超出期望大小。当实际内存超出 maxmemory 时,Redis 提供了几种可选策略 (maxmemory-policy) 来让用户自己决定该如何腾出新的空间以继续提供读

2022-02-28 23:41:42 390

原创 如何从Mysql快速查找一条数据

如何从Mysql快速查找一条数据前言可能许多小伙伴在面试中会遇到这么样的一道面试题:如何以最高效率随机在 Mysql 数据表中查找一条数据实际上,这个题包含了两个点在 Mysql 数据表随机查找一条数据保证效率最高实战我们平时常用的英语App,大部分都有 随机显示一个单词或者多个单词的功能,为了便于理解,我设计了以下代码,并往表里加了 30000 行数据。CREATE TABLE `words` ( `id` int(11) NOT NULL AUTO_INCREMEN

2022-01-27 16:25:06 6586

原创 MySQL主从同步 Last_Error: Could not execute

最近,使用mysql主从的时候,发现主库修改的数据没有同步到从库。立马开发排查。首先连接从库show slave status\G;查看从库的信息。从上面箭头的两处,我们可以看到是 x_daily_shares 表出了问题,以及是 mysql-bin.000009 文件对应的 end_log_pos。连接主库所在的服务器(不是连接数据库)首先我们要知道mysql binlog的日志位置,所以我们先需要知道mysql配置文件的位置查看mysql命令所在的位置which mys

2021-12-27 23:37:42 879

原创 Markdown 数学公式以及符号整理

1.如何插入公式???????????????????? 的数学公式由两种形式:行中公式和独立公式。行中公式放在文中与其它文字混编,独立公式单独成行。行中公式可以用如下方法表示:$ 数学公式 $独立公式可以用如下方法表示:$$ 数学公式 $$如果是使用 typora,想要使用 $$, 打开 偏好设置 -> MarkDown 开启功能即可。2.上下标^ 表示上标,_ 表示下标。如果上下标的内容多于一个字符,需要用 {} 将这些内容括成一个整体。上下标可以嵌套,也可以

2021-11-30 22:47:16 3010

原创 Redis报错 (error) NOAUTH Authentication required.

在 redis 界面的时候,遇到了这个错误127.0.0.1:6379> select 0(error) NOAUTH Authentication required.这个错误是没有授权所导致的,这个时候可以输入密码解决。127.0.0.1:6379> auth "your Password"或者在访问 `redis` 客户端的时候指定密码redis-cli -h 127.0.0.1 -p 6379 -a "your Password"...

2021-10-19 21:52:33 682

原创 Laravel php artisan命令大全

可用命令 clear-compiled 删除编译后的类文件 db 启动一个新的数据库 CLI 会话 down 将应用程序置于维护/演示模式 env 显示当前框架环境 help 显示命令的帮助 inspire 显示鼓舞人心的名言 list 列出命令 migrate 运行数据库迁移 optimize 缓存框架引导文件 serve 在 PHP 开发服务器上为应用程序提供服务 test 运行应用程序测试 tinker 与您的应用程序交互 up 使应用程序退出维护模

2021-09-30 22:28:23 506

原创 PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes)

使用 composer 创建 laravel 项目时报错,提示内存不足。针对这个问题,实际上 composer 官网也做出了相应的解释,详情查看我们使用如下命令获取当前的 memory_limit 值:php -r "echo ini_get('memory_limit').PHP_EOL;"查看内存是多少,发现内存设置不满足我们的需求。此外我又不想改动 php 的配置。因此,我们可以临时设置 COMPOSER_MEMORY_LIMIT=-1 。解决本次问题。示例COMPOSER_MEM

2021-08-22 01:58:48 575

原创 Laravel Error while reading line from the server解决方案

最近加了一台服务器,使用两台服务器部署nginx的负载均衡,但是运行了一段时间后,Redis报错:Error while reading line from the server。解决方案:修改 config/database.php 文件,找到 redis 的配置项,加上 read_write_timeout 参数,设置为 0来禁用 Redis 的默认超时。'redis' => [ 'cluster' => false, 'default' =&gt

2021-07-31 21:14:50 2752

原创 Shell获取当前目录名

category_name=pwd | awk -F "/" '{print $NF}'echo category_name

2021-06-30 23:50:50 625

原创 Git reset 和 revert的区别

工作目录、暂存区、版本库 工作区:就是你在电脑里能看到的目录,又称工作目录。你修改的文件并且没有 git add 的文件也算属于工作区。 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。使用 git add 可以将文件添加到暂存区。 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。Git的版本库里存了很多东西,其中最重要的就是称...

2021-05-30 23:20:31 2192 1

原创 Mac ssh 免密远程连接

Mac ssh 免密远程连接1. 本地创建公钥ssh-keygen -t rsa -C 'your [email protected]'-t 指定密钥类型,默认即 rsa ,可以省略-C 设置注释文字,比如你的邮箱2. 将公钥复制到 ssh 服务器# 将公钥文件复制至ssh服务器scp ~/.ssh/id_rsa.pub username@hostname:~/ # 使用用户名和密码方式登录至ssh服务器ssh username@hostname # 若.ssh 目录已存在,可省略此

2021-04-30 10:08:11 262

原创 Shell 入门看这一篇就够了!

Shell 教程什么是 Shell?我们在输入一个指令之后, 底层的硬件会透过我们下达的指令来工作!那么硬件如何知道你下达的指令呢?那就是 kernel (内核) 的控制工作了,真正能够控制计算机硬件(CPU、内存、显示器等)的只有 kernel (内核),而 shell 可译为 “外壳”,与 kernel 对应,即用户跟内核交互的对话界面。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。我们常用的 shell 有:Window 的 Explorer

2021-03-30 22:08:56 377 1

原创 Carbon类详解

Carbon 是 php 的日期处理类库Carbon 继承了 Datetime 类,也就是说 Carbon 是一个关于 DateTime 的 PHP拓展,DateTime 里已经实现的方法,Carbon 都能使用。Carbon 具有从基本 DateTime 类继承的所有功能。这种方法使您可以访问基本功能,例如 Modify, Format 或 diff 。class Carbon extends DateTime implements JsonSerializable安装:composer r

2021-02-20 09:43:18 864

原创 You can‘t specify target table ‘表名‘ for update in FROM clause错误

我创建了这样一个表CREATE TABLE `words` ( `id` int(11) NOT NULL AUTO_INCREMENT, `word` varchar(64) DEFAULT NULL, `num` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8mb4;我想查询word='aaae’时,将满足条件的记录的num字段修改

2021-01-15 11:50:10 168

原创 Tig利器使用

Tig是git的基于ncurses的文本模式界面。 它主要用作Git存储库浏览器,但也可以协助分阶段进行更改以在块级别进行提交,并充当各种Git命令输出的传呼机。这意味着Tig提供了可在终端中运行的基于文本的用户界面。 使用Tig可以轻松浏览Git日志,但是它不仅可以使您从上次提交跳到上一个,还可以做很多事情。安装方法:Window:最简单的方法是安装Windows版Git。 从2.14.2版开始,它与tig捆绑在一起。也就是说,你安装了Git就相当于安装了tig。Fedora 和 RHEL

2021-01-14 15:27:28 2274

原创 Linux Crontab 定时任务&Laravel定时任务实战

Cron介绍我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表。我们可以使用crontab来定时做一些事情,比如每天凌晨2点进行的定期备份。我们可以在以下文件夹内找到相关配置文件。/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名/etc/crontab 这个文件负责调度各种管理和维护任务。/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。我们

2021-01-14 14:38:32 789

原创 Laravel中访问器&修改器

访问器和修改器允许你在获取模型属性或设置其值时格式化 Eloquent 属性。例如,你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中访问时自动进行解密。访问器举个例子,有下面这么一个成绩表gradeidnamemath_gradeeng_grade1小王78882小红99100我们想计算小王和小红的总成绩(即数学成绩+英语成绩),这个时候如果在grade里添加一个total_score的字段,可能会让

2020-12-22 22:21:36 487

转载 laravel中scope的用法以及技巧

laravel中scope的用法以及技巧laravel中的scope作用域laravel中在模板中处理(属于不属于)的数据(增删改查),引入了scope来处理也就是在模板定义方法中,加上前缀scope。简言之,Laravel中模型中可以定义scope开头方法,这类方法可以通过模型直接调用。这类方法也称作查询作用域。<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class User extends Model{

2020-11-30 23:15:43 1169

原创 Laravel整合swagger

一、找到swagger的包我们访问packagist网站,搜索swagger,这里我们选择下载量最多的包二、安装swagger-uicd public在public目录下git clone https://github.com/swagger-api/swagger-uigit clone拷贝完之后呢,其实我们只需要 dist目录就行,其他的目录以及文件可以删掉三、使用创建SwaggerController配置数据php artisan make:controller Swagger

2020-10-06 23:22:52 2615

原创 Laravel实现权限控制

一、RBACRBAC: role base access control 基于角色的用户访问权限控制权限,就是权限分配给角色,角色又分配给用户。即一个用户对应一个角色,一个角色对应多个权限,一个用户对应用户组,一个用户组对应多个权限。二、认证授权逻辑登录逻辑:权限控制逻辑:三、具体实现创建表的迁移文件用户:创建model和迁移文件:php artisan make:model Models/User -m修改迁移文件:class CreateUsersTabl

2020-09-30 12:04:26 3703

原创 PHP日期转换函数

date函数使用 Date/Time 函数通过不同的方式来格式化日期和时间。语法:date(format,timestamp);format格式:format 字符说明返回值例子日——d月份中的第几天,有前导零的 2 位数字01 到 31D星期中的第几天,文本表示,3 个字母Mon 到 Sunj月份中的第几天,没有前导零1 到 31l(“L”的小写字母)星期几,完整的文本格式Sunday 到 SaturdayNISO-86

2020-09-24 11:44:32 563

原创 解决shell中(php thinker)方向键 ^[[A ^[[B 无法使用的问题

**原因:**PHPREPL不实现readline的行编辑和历史记录功能。我们可以使用命令php -m查看php是否有readline这个拓展模块,如果没有readline拓展模块,可以使用以下方法解决解决方法一:安装rlwrap,rlwrap是一个“ readline包装器”,这是一个使用GNU的小型实用程序readline库,允许编辑任何键盘输入命令。yum install rlwrap # 或者apt install rlwrap安装完成后,可以使用以下命令进入tinkerr

2020-09-23 15:50:05 351

原创 PHP输出函数

PHP打印函数1. echoecho输出一个或多个字符串,但是不换行。**注意:**echo实际不是一个函数,是一个语言结构,有无括号均可使用:echo 或 echo()。所以我们使用的时候不必对它使用括号。当然,如果向 echo()传递一个以上的参数,使用括号将会生成解析错误。**提示:**echo() 函数比 print()速度稍快。语法:echo(*strings*)示例:// 等同于 echo("helloworld");echo "helloworld"; //输出bo

2020-09-13 15:05:25 556

转载 原码、补码、反码的关系

一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011 就是机器数。2、真值因为第一位是符号位,所以机器数的形式值就不等于真正的数值...

2020-09-12 22:03:01 16839 3

原创 PHP连接Mysql8.0报错:Illuminate\Database\QueryException

PHP连接Mysql8.0报错:Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = manuscript and table_name = migrations and tab

2020-08-31 16:27:04 5082 1

原创 Laravel实现文件(图片)上传

这里以文章的封面图片上传为例打开config/filesystems.php文件,定义上传文章图片封面本地路径 uploads/article 'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), ], // 文章上传封面 'article' => [

2020-08-30 20:04:28 1986 1

图书管理系统

采用JSP技术,利用三层架构开发模式开发的一个CRUD的简易图书管理系统

2018-12-16

SpringMVC4超权威教程

1.SpringMVC 概述 2.SpringMVC 的 HelloWorld 3.使用 @RequestMapping 映射请求 • 4.映射请求参数 & 请求头 • 5.处理模型数据 • 6.视图和视图解析器 7.RESTful CRUD • 8.SpringMVC 表单标签 &处理静态资源 • 9.数据转换 & 数据格式化 & 数据校验

2018-04-19

《重构》和《clean code》

《代码整洁之道》讲述了一系列行之有效的整洁代码操作实践。软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。《代码整洁之道》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,这些实践在《代码整洁之道》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。 “这《重构:改善既有代码的设计》之于重构就相当于韵谱之于作诗。一个翻着韵书作诗的诗人一定是蹩脚的,但好的诗人却要对那109个韵部了然于胸;同样,一个好的程序员要求能够主动自然地重构代码,虽不应翻着重构手册干活,但需对《重构:改善既有代码的设计》中提到的70多个重构方法成竹在胸。然而,在达到这一境界之前,需要不断的实践和经验积累,并且要先读读Fowler的这《重构:改善既有代码的设计》。”

2018-02-07

空空如也

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

TA关注的人

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