
程序猿修炼
文章平均质量分 76
羁士
后端开发工程师
展开
-
Centos 8使用yum或者dnf安装时报错解决
由于CentOS 8 EOS 将CentOS 8 Mirror 站点转换为Vault 并且找不到Mirror 站点而出现的问题。Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist原创 2022-07-12 21:18:58 · 4235 阅读 · 0 评论 -
正则表达式搜索匹配的原理是什么
文章目录1,正则表达式的使用2,正则表达式匹配搜索算法3,正则表达式引擎:DFA和NFA4,正则表达式的性能与优化1,正则表达式的使用正则表达式(Regular Expression 简写regex),是一种字符串匹配的模式(pattern),用来匹配搜索一段已知字符串中是否含有自己需要的子字符串,初次接触正则表达时会觉得很深奥难写,这么多符号怎么记呢。其实当你通过几个实际例子应用之后就会觉得也没那么难。比如:1.给你一个字符串,把字符串里面的链接、数字、电话等显示不同的颜色;2.给你一个包含自原创 2021-08-01 13:43:53 · 1874 阅读 · 0 评论 -
依赖注入是什么?Go是如何实现依赖注入的?
什么是依赖注入依赖注入的好处Go的依赖注入-wire依赖注入是什么?第一次听到这个词的时候我是一脸懵逼的,很拗口有没有,可能很多学过spring的同学觉得这是很基础很好理解的知识,但因为我之前没学过Java和spring,所以第一次接触这个词的时候是很懵的。依赖注入,英文名dependency injection,简称DI。依赖两个字很好理解,在软件设计上,从架构模块到函数方法都存在大大小小的依赖关系。比如说在new A 之前需要先new B ,A依赖于B,这时候我们就可以说B是A的依赖,A.原创 2021-07-26 21:35:10 · 1314 阅读 · 2 评论 -
CORS-后端工程师也需要掌握的跨域问题解决方案
前言:很多人都知道浏览器的跨域问题,以为这是前端工程师的事情,但其实跨域问题不仅是前端工程师需要关注的问题,后端工程师也需要对其有一定的了解,并知道其原因和解决方法。什么是跨域问题 同源策略 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能。此策略限制了浏览器对不同源对不同源的脚本或文本的访问方式进行了限制。所以其是对浏览器的限制。如果缺少了同源策略,浏览器很容易受到XSS、CS...原创 2021-04-11 16:09:50 · 1021 阅读 · 0 评论 -
Dapper,大规模分布式系统的跟踪系统
View project onGitHub概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如何满足一个低损耗、应用透明的、大范围部署这三个需求的...转载 2021-03-23 16:16:08 · 345 阅读 · 0 评论 -
如何用Docker-compose快速搭建开发环境——以LNMP为例
如果你换了新电脑或者买了台新服务器,想搭建自己的开发环境,比如说你想快速建站想搭建个LNMP开发环境,那你就要分别安装php,nginx,mysql,甚至还需要安装redis,memcache,mq等。想想就很头疼是不是,这些环境幸运的话也要几个小时安装时间,不幸的话可能要捣鼓一天。说到搭建环境大家肯定会想到Docker:build once,run anywhere。但这只对单个应用有效啊,我还是要pull很多的镜像运行。有没有可以将这些镜像一起下载下来安装的东西呢?当然有,Docke原创 2021-03-19 20:09:51 · 534 阅读 · 0 评论 -
Navicat连不上阿里云服务器Docker中的MySQL问题
最近阿里云有活动,就搞了一台服务器玩玩。用DOcker装上了LNMP。安装好MySQL后想用Navicat连接一下,没想到一直是超时:Can't connect to MySQL server on 'xx.xx.xx.xx' (60 "Operation timed out")。Google一下后发现是root没有支持远端连接,所以按着教程配置分配权限:https://www.cnblogs.com/jiangzhaowei/p/10989344.htmlhttps.原创 2021-03-16 20:27:55 · 881 阅读 · 3 评论 -
MySQL 枚举类型如何定义比较好 tinyint?enum?varchar?
前言当项目中遇到比较多的枚举字段时怎么选择MySQL的类型呢?tinyint,varchar还是enum?据我观察大家还是用tinyint的比较多,少数也会直接用varchar。说到枚举,这个类型真的是有点坑,写的时候又不想校验(尤其是枚举值比较多的时候),又想直接在表里可以显示出原字符(说到底还是懒)。tinyint可以校验插入的值为自己定义的数值且索引友好但是显示不友好,varvhar可以直接在表中显示字段值但对索引又不友好。两种都不是最优选择,后来MySQL出现了e...原创 2021-02-10 18:04:04 · 4565 阅读 · 2 评论 -
golang处理excel打开csv乱码问题
最近在一个项目中导入导出csv文件的时候用excel打开都会出现乱码的情况,但是用number打开却是正常的,由此可知是编码问题导致。在导入读取csv文件时,因为golang默认支持utf8编码,所以如果导入的csv文件不是utf8编码就会产生乱码,所以在读取文件的时候需要进行一个编码格式转换。用到两个包:"golang.org/x/text/encoding/simplifiedchinese""golang.org/x/text/transform"然后将GBK编码转换为UTF8编码原创 2020-12-16 11:27:54 · 5075 阅读 · 0 评论 -
MySQL错误解决——[Err] 1030 - Got error 168 from storage engine
用docker装的MySQL映射到本地路径,然后突然遇到这个报错,表面上看起来是存储引擎出问题了,但建表引擎都没有改过。回想一下是映射的路径文件被我移到别的地方了,应该是影响到了,所以我选择删除原来的docker镜像重新run到新的路径,问题解决。...原创 2020-12-05 13:36:25 · 8697 阅读 · 1 评论 -
golang遍历数组时,不同的赋值方式性能会不一样吗?
事情的经过是今天发现一个同事写代码的风格和我们平常的不一样,直接用索引赋值给新的数组,他说这样性能更高,我当时是不信的,所以立马就写了代码来测试了一下。测试demo如下: //构造1000000个数据 type T struct { a int b string } a := T{77, "Sunset Strip"} list:=make([]T,1000000) for i:=0;i<1000000;i++{ list[i]=a } 比如说原创 2020-11-02 20:04:44 · 1161 阅读 · 1 评论 -
安装oh my zsh失败: 连接 raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... 解决办法
问题描述根据官网的安装指令sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"然后就会遇到如下错误正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0正在连接 raw.githubusercontent.com (raw.githubusercontent.com原创 2020-09-27 10:47:19 · 10123 阅读 · 1 评论 -
grpc生成pb.go文件报错github.com/gogo/protobuf/gogoproto/gogo.proto: File not found.
今天准备写个grpc接口,然后看了文档准备开始写proto文件,写完之后打算生成对应的pb.go文件。然后就报了这么一个错误:github.com/gogo/protobuf/gogoproto/gogo.proto: File not found.看字面意思很简单,就是文件没找到。然而,我的pkg中明明是有这个文件的,带不带版本号是不影响的。然后进过一系列的摸索和请教终于找到了解决办法!关掉你的module自动同步:go env -w GO111MODULE=off.原创 2020-09-25 18:56:14 · 4217 阅读 · 3 评论 -
系统设计——如何设计一个高性能的短链接系统?
短链系统设计看起来很简单,但如何设计一个高性能短链系统呢,这也是面试中非常常见的一道设计题。这一个看起来简单的短链系统其实包含了挺多的知识点的。 首先,为什么要用锻炼? 短链跳转的基本原理是什么? 短链生成的几种方法你知道吗? 高性能短链的架构如何设计? 1. 短链的好处短链现在基本上属于各大公司发短信必备技术了,比如优快云发我的验证码短信,下方蓝色链接明显是短链。而当我点开浏览器之后,发现这个短链已经跳转到其根本的长链接...原创 2020-09-07 11:00:18 · 2494 阅读 · 0 评论 -
TiDB新增数据报错Table has no partition for value xxx解决,新增分区
tidb在插入一个新数据的时候报错:Table has no partition for value xxx表明表中没有这个分区,需要新增查一下新增语句ALTER TABLE fans_medal ADD PARTITION (PARTITION p20200828 VALUES LESS THAN (20200829));然后再插入我需要的数据解决!参考:https://book.tidb.io/session4/chapter6/partition-table.原创 2020-08-28 16:08:07 · 1923 阅读 · 0 评论 -
【高频算法题】这28道题本周被50家公司问了128次
大家都知道现在各大互联网公司的招聘面试已经越来越注重算法了,除了校招要笔试之后,校招社招的面试过程中都会手撕算法题。尤其是字节跳动,动不动就给甩给你一个medium甚至hard。但是大家的时间可能没那么多,无法刷完所有题甚至一些准备不充分的同学很多类型的题都没见过。这里有网上总结的大厂超高频算法题,面试的时候其实面试官也就爱问这几类题,真搞懂了这些题面试的时候遇到原题或类似的题目可能性还是非常大的。哪28道题在本周被这么多公司考察呢?比如说LR...原创 2020-08-28 12:20:45 · 278 阅读 · 0 评论 -
欢迎关注我的公众号【程序员面试精选】
毕业之后的第一份工作是PHP后端开发工程师,当时因为从没接触过PHP所以相当于要从头学习语言。经过一段时间的学习之后,对于工作已经游刃有余了。但是除了编程语言,计算机基础的东西很多都遗忘了。比如说,操作系统,数据结构与算法,计算机网络,数据库等。这些东西可以说是程序员的地基,地基不牢地动山摇。可能会在你遇到问题的时候无从下手,毕竟实践还是需要理论知识指导的。现在转作go后端开发,我发现除了语言不一样,其他一些基础都是通用的。在后来面试准备复习的时候,我也关注了一些知名技术公众号。这些公众号一开始可能文原创 2020-08-23 23:56:09 · 497 阅读 · 0 评论 -
【建议收藏】最全的MySQL索引面试知识点
转自架构之美一、什么是索引?索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据;索引的实现通常使用B树及其变种B+树。更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。二、索引有哪些优缺点?索引的优点1.可...转载 2020-08-23 16:33:19 · 257 阅读 · 0 评论 -
Git自动补全配置安装(Mac版本)
安装 bash-completionbrew install bash-completion下载git源码使用如下命令即可下载:(但内网下载不动,需要科学上网)git clone https://github.com/git/git复制 git-completion.bash源代码下有个 contrib/completion 目录,有个 git-completion.bash 文件cd git/contrib/completion/将该文件复制到主目录(~)下注.原创 2020-08-11 20:56:04 · 697 阅读 · 0 评论 -
高频面试题——你真的搞懂物理内存与虚拟内存了吗
虚拟内存是什么?这是一个面试中经常被提到的问题,大多数人可能只记住了内存地址映射和缺页置换,但你真的搞懂了为什么会有虚拟内存了吗,它存在的作用是什么呢?要想搞懂虚拟内存,我们先从头来回顾一下虚拟地址分段分页的知识吧。一、 虚拟地址空间在早期的计算机中,程序是直接运行在物理内存上的,那个时候的计算机和程序内存都很小。程序运行时会把其全部加载到内存,只要程序所需的内存不超过计算机剩余内存就不会出现问题。但由于程序是可以直接访问物理内存的,这也带来了内存数据的不安全性,轻则程序挂掉,重则操作原创 2020-07-31 10:56:53 · 1474 阅读 · 2 评论 -
MySQL面试知识点追命连环问(三)锁机制、日志备份及分表策略
上次我们讨论了MySQL的事务索引,SQL优化和处理器。MySQL面试知识点追命连环问(二)事务、索引及SQL优化这次我们继续来追命连环问关于MySQL锁机制,日志备份和扩展性等相关的内容。 锁机制 日志备份 集群 分库分表 1. MySQL锁机制面试官:你知道MySQL的锁机制吗?答:知道的。MySQL锁按加锁粒度可以分为行锁表锁和...原创 2020-04-06 20:38:34 · 616 阅读 · 0 评论 -
MySQL面试知识点追命连环问(二)事务、索引及SQL优化
目录1. MySQL事务2. MySQL索引3. SQL优化4.常见问题上次我们讨论了MySQL的运行流程及原理,字段设计,存储引擎和查询缓存。MySQL面试知识点追命连环问(一)这次我们继续来追命连环问关于事务,索引,SQL优化等相关的内容。准备好了吗? 事务 索引 SQL优化 常见问题 1. MySQL事务面试官:你知道...原创 2020-02-24 19:26:10 · 2744 阅读 · 1 评论 -
Git查看某个文件的历史提交者和详细变更的方法
查询历史记录主要用到git log命令,简单好用git log默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个 SHA-1 校验和、作者的名字 和 电子邮件地址、提交时间,最后缩进一个段落显示提交说明。1.查询fileName相关的commit记录git log filename2.查看这个文件每次提交的详细dif...原创 2020-02-17 16:58:39 · 1976 阅读 · 0 评论 -
一次完整的HTTP请求过程是怎么样的呢?【图文详解】
前言当我们在浏览器栏输入:https://blog.youkuaiyun.com/dianxin113 的时候,具体发生了什么呢?这个请求是怎么到达服务器及返回结果的呢?概述 浏览器进行DNS域名解析,得到对应的IP地址 根据这个IP,找到对应的服务器建立连接(三次握手) 建立TCP连接后发起HTTP请求(一个完整的http请求报文) 服务器响应HTTP请求,...原创 2020-02-17 10:29:56 · 3481 阅读 · 4 评论 -
MySQL面试知识点追命连环问(一)执行流程&存储引擎&查询缓存
来了,朋友们,追命连环问系列之MySQL部分开始了。准备好了吗?本次连环问主要设计以下四个方面: MySQL执行流程 MySQL存储引擎 表字段如何设计 查询缓存 一,MySQL的执行流程面试官:你知道一条sql语句进来的流程是什么吗?我:知道,我来说一下。MySQL的架构是由两部分组成的:server层和存储引擎层。Server层...原创 2020-02-02 14:07:56 · 1009 阅读 · 0 评论 -
Redis追命连环问,你能回答到第几问?(下)主从复制及哨兵原理
上次的Redis连环问问到了Redis是什么,Redis支持的数据类型,缓存雪崩缓存穿透缓存击穿,内存淘汰策略和持久化策略等。Redis常见面试题连环问,你能回答到第几问?(上)Redis常见面试题连环问,你能回答到第几问?(中)Redis常见面试题连环问,你能回答到第几问?(下)这次来继续问: Redis主从复制机制 Redis...原创 2020-01-13 13:17:25 · 517 阅读 · 0 评论 -
Redis追命连环问,你能回答到第几问?(中)Redis性能,与memcache区别,淘汰策略及数据持久化
上次的Redis连环问问到了Redis是什么,Redis支持的数据类型和缓存雪崩缓存穿透缓存击穿。Redis常见面试题连环问,你能回答到第几问?(上)Redis常见面试题连环问,你能回答到第几问?(中)Redis常见面试题连环问,你能回答到第几问?(下)这次来继续问: Redis为什么这么快? Redis和memcache的区别...原创 2020-01-10 23:43:59 · 2131 阅读 · 0 评论 -
Redis追命连环问,你能回答到第几问?(上)Redis简介,数据类型及缓存雪崩缓存击穿缓存穿透
Redis常见面试题连环问,你能回答到第几问?(上)Redis常见面试题连环问,你能回答到第几问?(中)Redis常见面试题连环问,你能回答到第几问?(下)Redis是后端工程师必备的一项技能,下面分享一位求职者在面试过程中遇到的问题。面试官说:“我们开始吧。看了你的简历,觉得你对redis应该掌握的不错,我们今天就来讨论下redis…”。我想:“来就来,兵来将挡水来土掩”。...原创 2020-01-08 19:21:51 · 1223 阅读 · 0 评论 -
Redis和memcache有什么区别与不同?如何选择?
问:Redis和memcache都是常用的缓存工具,但他们有哪些不同你知道吗?平常应用中怎么选择呢?先说结论,我认为他们有以下几方面的不同:1、Redis和Memcache都是将数据存放在内存中,memcache还可用于缓存其他东西,例如图片、视频等等,但最大只能缓存1M。Redis最大缓存可达512M。2、Redis不仅仅支持简单的k/v类型的数据,同时还提供lis...原创 2020-01-06 15:18:29 · 1092 阅读 · 0 评论 -
Redis面试真题——如何用Redis统计网站的用户访问量【pdd】
pdd有数亿的用户,那么对于某个网页,怎么使用Redis来统计一个网站的用户访问数呢?方案一、使用有序集合每当一个用户上线时, 我们就执行 ZADD 命令, 将这个用户以及它的在线时间添加到指定的有序集合中:ZADD "online_users" <user_id> <current_timestamp> 通过使用 ZSCORE 命令检查指定的用户 ID 在有序...原创 2020-09-10 11:01:32 · 667 阅读 · 0 评论 -
Virtualbox报错---make sure the kernel module has been loaded successfully解决方法
错误描述很久没有用virtualbox了,今天打算在virtualbox上安装一个Ubuntu系统的时候,新建好Ubuntu后启动的时候,直接报错:Cannot access the kernel driver! Make sure the kernel module has been loaded successfully.11解决方法1、找到vboxdrv.inf文转载 2017-08-09 09:54:02 · 7779 阅读 · 1 评论 -
计算机网络基础知识总结
计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝地广人多,地方性语言也非常丰富,而且方言之间差距巨大。A地区的方言可能B地区的人根本无法接受,所以我们要为全国人名进行沟通建立一个语言标准,这就是我转载 2017-08-17 20:08:18 · 281 阅读 · 0 评论 -
markdownpad2 key lincence注册码
为了传图找了一个授权秘钥,亲测可用,分享出来。注册邮箱地址:Soar360#live.com请将#号替换为@符号。授权秘钥:GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwf转载 2017-07-16 10:29:42 · 11117 阅读 · 0 评论 -
win7滑轮滚动excel就停止工作的解决方法
重装系统后又安装了office 2013,但这次的excel正常使用没什么问题,一拉进度条或滚动滑轮就停止工作,网上很多什么修改注册表和删除文件的方法都没有,安装Microsoft的补丁也没用,最后下载替换了一个dll文件就解决了,不管32还是64位都可以解决。下载地址:http://www.dllzj.com/osf.dll/解压后把dll文件放到office15文件夹下替换即可原创 2017-07-05 13:33:20 · 4198 阅读 · 1 评论 -
使用hexo+GitHub搭建自己的博客中遇到问题的解决方法及博客美化
之前一直就想搭建自己的个人博客了,但一直拖着没动手,昨天终于花了一天的时间完成了,从安装到域名注册到配置美化,但还没有完成,之后还会一直继续修改。关于搭建的教程网上各种教程,但是要学会分辨,有些是错的,这里我也不多说了,只说一下搭建过程中遇到的问题及解决方法。port:4000端口打不开,可能被占用了,改为5000。但并不是修改配置文件中的port参数,而是he原创 2017-06-04 15:59:43 · 2733 阅读 · 0 评论 -
Win7如何简单的关闭445端口及445端口入侵详解
最近永恒之蓝病毒攻击了很多教育网的同学,下面我们就来看一下如何关闭445端口根据网络安全机构通报,这是不法分子利用NSA黑客武器库泄漏的“永恒之蓝”发起的病毒攻击事件。“永恒之蓝”会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。由于以前国内多次爆发利用445端口传播的蠕虫,运原创 2017-05-13 11:07:03 · 251072 阅读 · 17 评论 -
程序员必读书单 (仅供参考)
转载:http://zh.lucida.me/blog/developer-reading-list/程序员必读书单 1.0发表于 2015-02-25 | 分类于 阅读 | 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。前言转载 2017-04-20 10:57:17 · 1075 阅读 · 0 评论 -
数据库基本概念整理及常用SQL语句
数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结吧。希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过的同学能掌握一些数据库的基础知识。第一节 一、相关概念 1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。 2. Da原创 2017-08-10 21:13:19 · 8042 阅读 · 0 评论 -
操作系统常考知识点总结
1、进程是并发过程中程序的执行过程2、进程的特征:结构特征动态性并发性独立性异步性3、临界区指在每个进程中访问临界资源的那段代码4,现在操作系统中申请资源的基本单位是进程,在CPU得到执行的基本单位是线程,进程是由程序段、数据段、PCB组成的5,对临界资源应采取互斥访问方式来实现共享6,P.V操作是一种低级进程通信原语7,对于记录性信号量,在执行一次转载 2017-08-06 09:55:14 · 443 阅读 · 0 评论 -
语言只是工具,能力才是内功。
最近参加了一个行业内的技术大会,也听了几位大牛的演讲,有一些个人感悟。1. 我该学习什么语言我发现不管是没有工作的在校大学生,还是工作了几年的职场初级程序员,当然包括我在内。在学编程与找工作的时候,第一个想到的问题就是我该学习什么语言?php是不是没落了,Java是不是太多了,golang是不是职位少,python是不是只能做算法?你总会觉得,对于程序员来说,编程语言是最重要的。毕竟天天干活...原创 2019-08-12 00:17:12 · 861 阅读 · 0 评论