MClink
码龄5年
  • 279,641
    被访问
  • 85
    原创
  • 15,390
    排名
  • 6,268
    粉丝
关注
提问 私信

个人简介:一个在后端领域摸爬滚打的小小程序员

  • 加入CSDN时间: 2017-04-18
博客简介:

MClink的博客

博客描述:
没有厚积,何来薄发。
查看详细资料
  • 6
    领奖
    总分 2,032 当月 65
个人成就
  • 获得386次点赞
  • 内容获得98次评论
  • 获得1,269次收藏
创作历程
  • 2篇
    2022年
  • 22篇
    2021年
  • 16篇
    2020年
  • 21篇
    2019年
  • 29篇
    2018年
成就勋章
TA的专栏
  • MySql
    7篇
  • SASS
  • 架构
    4篇
  • Redis
    4篇
  • 后端面试专题
  • 计算机原理
    1篇
  • 设计模式-理念
    1篇
  • python
    1篇
  • 读-网络是怎么连接的
    6篇
  • php
    29篇
  • 网络
    13篇
  • 前端
    6篇
  • 杂项
    3篇
  • 操作系统
    4篇
  • c语言与数据结构
    5篇
  • 算法
    3篇
  • Go大法
    10篇
  • 硬件
    1篇
  • 闲语
兴趣领域 设置
  • 大数据
    mysqlredis
  • PHP
    php
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

详解MySQL之事务篇

事务是 MySQL 十分重要的功能,你真的懂吗?
原创
发布博客 2022.03.22 ·
960 阅读 ·
1 点赞 ·
0 评论

详解 Go之面向对象

面向对象的三大特点是:封装、继承、多态,那么Go是面向对象的语言吗?
原创
发布博客 2022.03.10 ·
1053 阅读 ·
3 点赞 ·
3 评论

Go命令行实现工具- flag大法详解

一、flag 是什么东西?对于很多语言,都支持用命令行执行。例如 PHP 支持用PHP命令 解析PHP脚本语言,Java 支持用 Java命令编译 Java代码,golang 也支持用 go 命令编译执行。既然都支持用命令行执行,但是命令行又不像web 页面那样有输入框给我们填充参数,那么怎么让程序可以读取我们输入的值呢?为了解决这样的问题,golang 为此提供了 flag 标准库。它的主要功能是实现命令行参数的解析。二、flag 入门?我们简单举一个简单的例子:package main
原创
发布博客 2021.12.04 ·
829 阅读 ·
1 点赞 ·
0 评论

数据库编程两大神器-存储过程和函数

一、什么是过程化sql1.基本概念:基本的sql 都是高度非过程化的语言,过程化sql 是对SQL 的拓展,使其增加了过程化语句功能,过程化sql 程序的基本结构是块。所有的过程化SQL都是由块组成的。这些块可以相互嵌套,每个块都可以单独完成一个逻辑操作。例如:declareset ... /*定义部分*/ ... /*执行部分*/ begin sql语句、过程化SQL的流程控制语句 exception 异常处理部分 end;2.过程化sql的两种形式过程
原创
发布博客 2021.09.12 ·
246 阅读 ·
3 点赞 ·
1 评论

涨粉好难呀

发布动态 2021.09.10

手把手教你微信第三方平台开发

本文适合想接入第三方平台开发的同学,通过真实经验大致讲解一下相关业务,建议收藏以备不时之需。一、什么是微信开放平台微信开放平台地址微信开发平台实际上就是给微信外部人员提供微信能力的平台,我们可以在这个平台创建相关的应用,管理对应的认证、授权信息,然后通过开放接口对接微信提供的种种能力。其中,账号的申请需要公司主体的相关信息。二、如何接入微信第三方平台的开发2.1 注册开放平台账号注册账号需要邮箱(这个邮箱贼恶心,不能是微信绑定过的,也不能是公众号平台绑定的,小程序平台绑定的也不行),.
原创
发布博客 2021.09.07 ·
1869 阅读 ·
1 点赞 ·
1 评论

用docker五分钟快速搭建Redis小集群

一、用docker 快速配置Redis 集群1. 查询最新的镜像docker search redis2.下载镜像docker pull redis3.起三个容器docker run --name redis-6379 -p 6379:6379 -d redisdocker run --name redis-6380 -p 6380:6379 -d redisdocker run --name redis-6381 -p 6381:6379 -d redis4.查看容器启动情况
原创
发布博客 2021.09.02 ·
52 阅读 ·
1 点赞 ·
1 评论

Redis挂了,我的数据还能恢复吗(二)?

一、前言我们在上一篇文章聊到了 redis 通过 aof 机制确保了数据的可靠性,但是 aof 日志记录的其实是操作过的命令,并不是实际数据本身,通过 aof 日志进行恢复需要消耗较多的时间,因为每个命令都要执行一遍。这个时间基本上和 aof 日志的大小成正比,如果数据量不大,那倒是无所谓,但是如果数据量特别大,恢复数据的时间可就长了,那么 redis 的团队难道就没考虑到这种情况吗?当然考虑到了,所以才有了 RDB 机制。二、什么是 COW 机制写时复制技术,实际上是linux 系统提供的一种内存优
原创
发布博客 2021.08.29 ·
102 阅读 ·
2 点赞 ·
0 评论

Redis挂了,我的数据还能恢复吗(一)?

一、内存和磁盘的区别计算机的CPU只能读取内存里的东西,无法直接磁盘读取数据。因此程序和数据必须先从磁盘中读取到内存中,才能被CPU使用。电脑硬盘作为计算机最主要的存储设备,具有比较稳定的数据存储能力,又称之为外存,从介质上来区分,可分为 SSD (固态硬盘) 和 HD (普通磁盘),SSD 主要是利用电子来存储数据,而 HD 是利用磁性来存储数据,相对来说,SSD IO 相对较快,但是比较贵,而 HD 相对速度慢,容易损坏,但是价格便宜。内存用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数
原创
发布博客 2021.08.28 ·
241 阅读 ·
2 点赞 ·
0 评论

数据结构之散列表

一、什么是散列表散列表又称哈希表,这种数据结构提供了键和值的映射关系,只要给出一个 key, 就可以高效查找到它所匹配的 value,时间复杂度接近️ O(1)举个例子,在读书的时候,我们每个人都有一个学号,一个学号对应一个学生。学号可以当作一个key, 学生名字就是一个value。二、哈希表的作用在日常开发中,我们经常会用到哈希表,如 redis 缓存,PHP 的关联数组,go 的 map 等。再比如说,假设我们要统计一份名单中,每个名字出现的重复次数,那么我们就可以建立一个简单的哈希表,ke
原创
发布博客 2021.08.14 ·
123 阅读 ·
2 点赞 ·
0 评论

单点登录之CAS实践

博主在前段时间参与开发了公司内部的统一登陆认证平台,于是,便有了这篇文章。一、为何要开发这个东西?现状:各系统都有自己的登陆页各系统单独维护自己一套登陆体系,使用方需要记住多套账号密码各系统都有自己的UI ,布局不统一使用成本高,多个系统都有属于自己的权限控制,对新人不友好,授权入口也不统一…总之,很麻烦很麻烦。于是为了解决这些问题,统一登陆认证平台势在必得。二、相关概念为了更好的理解这篇文章,我们首先需要先了解一些相关的概念。ssosso 是英文 Single Si.
原创
发布博客 2021.08.08 ·
125 阅读 ·
2 点赞 ·
1 评论

GO语言之协程和锁

一、使用协程go 的协程使用上十分的简单,只需要在方法前添加 go 关键字,就可以开启一个新的用户态线程去异步执行。package mainimport ( "fmt" "time")func main() { go doSomething("mclink") doSomething("study")}func doSomething(str string) { for i:=0 ;i < 5 ; i++ { time.Sleep(time.Second) fmt
原创
发布博客 2021.06.07 ·
428 阅读 ·
3 点赞 ·
1 评论

浅谈GO语言包管理

一、包管理的作用不论是哪种语言,都会有很多大佬写的框架以及工具包,我们为了可以增加代码跨项目的可复用性,经常会把一些常用的功能或者轮子写成一个或者多个包,因为包的独立性,使得我们可以在不同的项目或仓库对它进行使用,间接提高了代码的可复用性,减少了 CP 的场景。不同语言对包的概念界限不同,但是他们的本质是相同的,都是为了提供一些便于开发使用的工具方法或者轮子。本质就是一个文件夹的代码,当然包可以用来区分相同名字的函数、变量等标识符等。二、如何进行包管理1. GOPATH 模式Go 的包管理方式是逐
原创
发布博客 2021.05.25 ·
136 阅读 ·
2 点赞 ·
0 评论

看完这些,小姐姐不会说你不懂线程了

在现实生活中,底层劳动人民往往容易被忽视,在大场合交际的一般是老板,但是没有了真正劳动者,是无法正常运转公司的。操作系统也是如此。文章最后有福利。一、概念上一篇我们简单了解了进程。进程是资源调度的最小单位,但并不是真正干活的人,真正在调度机上运行而是线程。线程是进程中执行运算的最小单位,也是执行处理机调度的基本单位。好比说一个进程是一家公司,公司的老板是第一个线程,手下的员工也是线程,他们共享着公司的资源,在对外的时候,我们一般会以公司为最小单位参加各类融资活动。不同公司的交涉往往没有公司内部交流来.
原创
发布博客 2021.05.16 ·
52 阅读 ·
2 点赞 ·
0 评论

你真的懂进程吗?熬夜总结的进程知识梳理。

进程=程序+数据+数据结构,这句话大家应该不陌生。让我们一起重新了解进程吧。一、程序设计我们先来聊聊程序,按处理方式的不同,程序的设计一般分为两种类型1. 顺序程序设计1.1 特性封闭性指只有程序本身的动作才能改变程序的运行环境再现性指程序的执行结果与程序的运行速度无关顺序性指程序所规定的每个动作都在上个动作结束后才开始顺序程序设计,也就是一个单核CPU一次性只能干一件事,干完了这件事,下一件才能开始。从日常生活我们就知道,我们经常需要一天干很多的事情,经常.
原创
发布博客 2021.04.26 ·
155 阅读 ·
2 点赞 ·
0 评论

进程管理之死锁

1.死锁的概念1.1 什么是死锁 先来看下一个例子:连接两个地方之间有一座桥,这座桥很窄,一次只能容纳一辆车的通行,这时候,从桥的两侧分别各有一辆车上来,对于A车而言,它行走了桥的一段路(占有该桥的一部分资源),想要过桥到达另一端需要B车让开从而才可以行驶,这时出于等待状态,而B车,也行走了桥的一段路(占有该桥的一部分资源),想要过桥到达另一端也需要A车让开从而才可以行驶,这时也出于等待状态。 A车和B车两者之间谁也不让路,都处于等待对方的状态,结果造成两边的车都不倒车,互相等待对方让...
原创
发布博客 2021.04.19 ·
119 阅读 ·
1 点赞 ·
0 评论

浅谈 GO 语言错误处理

go 的异常处理一直都是一种让人感觉奇怪的设计,本文用较多的篇幅和大家一起聊聊go 的异常处理的一些姿势一、error 是什么玩意话不多说 ,先放下源码(也就几行)package builtin// The error built-in interface type is the conventional interface for// representing an error condition, with the nil value representing no error.typ.
原创
发布博客 2021.04.18 ·
187 阅读 ·
1 点赞 ·
0 评论

浅谈单体向微服务架构的演进

一、什么是架构首先,要理解架构,我们需要先理解几个有关系又相似的概念,包括:系统和子系统、模块和组件、框架和架构。我们以一个学生管理系统为例。1. 系统和子系统系统:系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”。子系统子系统也是由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。一个可用的、完整的学生管理系统便是一个系统,系统一般是具有完整性的。而学生管理系统又可以包括用户子系统,学生
原创
发布博客 2021.04.04 ·
2261 阅读 ·
4 点赞 ·
4 评论

gorm 如何实现支持任意原生SQL查询

目标:实现一个通用查询。传入任意的原生SQL,使其能基于 gorm 上获取结果一、gorm 能否直接实现?首先,我们分析一下,首先要支持任意原生SQL,然后返回结果无法确定结构体。很多人说,gorm 本身支持原生SQL查询啊。是的没错,但是实现上却有一定的限制,通过阅读文档,发现以下两种查询方式:// 第一种type Result struct { ID int Name string Age int}var result Resultdb.Raw("SELECT i.
原创
发布博客 2021.03.27 ·
1855 阅读 ·
4 点赞 ·
3 评论

GO进阶之类型篇

数据类型是语言的基础,对于强类型的语言来说,正确使用类型也是一个基本功,不可轻视。一、Go 的类型有哪些?Go语言内置以下这些基础类型:布尔类型: bool。整型: int8、 byte、 int16、 int、 uint、 uintptr等。浮点类型: float32 、 float64。复数类型: complex64、 complex128。字符串: string。字符类型: rune。错误类型: error。同时, Go语言也支持以下这些复合类型:指针( pointer.
原创
发布博客 2021.03.02 ·
160 阅读 ·
2 点赞 ·
0 评论
加载更多