你的征程是星辰大海

私信 关注
羁士
码龄8年

后端开发工程师,公众号【codeoffer】

  • 513,441
    被访问量
  • 77
    原创文章
  • 31,941
    作者排名
  • 1,346
    粉丝数量
  • 于 2012-12-01 加入CSDN
获得成就
  • 获得116次点赞
  • 内容获得32次评论
  • 获得266次收藏
荣誉勋章
兴趣领域
  • #后端
    #Linux#Python#PHP#C/C++#MySQL#Redis#Go/GoLang
TA的专栏
  • Golang
    13篇
  • 杂谈
    3篇
  • 笔记
    4篇
  • 追命连环问系列
    5篇
  • C++
    20篇
  • Python
    3篇
  • 数据结构和算法
    8篇
  • Coding
    8篇
  • Linux
    3篇
  • Openstack
    1篇
  • 视频会议
    2篇
  • 程序猿修炼
    45篇
  • 设计模式
    1篇
  • 公众号开发
    3篇
  • PHP
    7篇
  • 工具技巧
    8篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

CORS-后端工程师也需要掌握的跨域问题解决方案

​前言:很多人都知道浏览器的跨域问题,以为这是前端工程师的事情,但其实跨域问题不仅是前端工程师需要关注的问题,后端工程师也需要对其有一定的了解,并知道其原因和解决方法。什么是跨域问题 同源策略 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能。此策略限制了浏览器对不同源对不同源的脚本或文本的访问方式进行了限制。所以其是对浏览器的限制。如果缺少了同源策略,浏览器很容易受到XSS、CS...
原创
13阅读
0评论
0点赞
发布博客于 6 天前

Dapper,大规模分布式系统的跟踪系统

View project onGitHub概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如何满足一个低损耗、应用透明的、大范围部署这三个需求的...
转载
14阅读
0评论
0点赞
发布博客于 25 天前

Golang变量遮蔽——Shadowing

在golang中,我们经常会用:=来声明变量,这很方便但也会带来一些问题。当变量遇到作用域时就容易产生shadowing。比如说我们经常会遇到的:shadow: declaration of "err" shadows declaration什么是变量隐藏呢?就是当年在后面重新声明了前面已经声明的同名变量时,后面的变量值会遮蔽前面的变量值,虽然这两个变量同名但值却不一样。这样是很容易产生问题的。举个栗子来看一下:func main() {n ...
原创
21阅读
0评论
0点赞
发布博客于 29 天前

如何用Docker-compose快速搭建开发环境——以LNMP为例

如果你换了新电脑或者买了台新服务器,想搭建自己的开发环境,比如说你想快速建站想搭建个LNMP开发环境,那你就要分别安装php,nginx,mysql,甚至还需要安装redis,memcache,mq等。想想就很头疼是不是,这些环境幸运的话也要几个小时安装时间,不幸的话可能要捣鼓一天。说到搭建环境大家肯定会想到Docker:build once,run anywhere。但这只对单个应用有效啊,我还是要pull很多的镜像运行。有没有可以将这些镜像一起下载下来安装的东西呢?当然有,Docke
原创
28阅读
0评论
0点赞
发布博客于 29 天前

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.
原创
29阅读
1评论
0点赞
发布博客于 1 月前

MySQL 枚举类型如何定义比较好 tinyint?enum?varchar?

前言当项目中遇到比较多的枚举字段时怎么选择MySQL的类型呢?tinyint,varchar还是enum?据我观察大家还是用tinyint的比较多,少数也会直接用varchar。说到枚举,这个类型真的是有点坑,写的时候又不想校验(尤其是枚举值比较多的时候),又想直接在表里可以显示出原字符(说到底还是懒)。tinyint可以校验插入的值为自己定义的数值且索引友好但是显示不友好,varvhar可以直接在表中显示字段值但对索引又不友好。两种都不是最优选择,后来MySQL出现了e...
原创
161阅读
1评论
0点赞
发布博客于 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编码
原创
255阅读
0评论
0点赞
发布博客于 4 月前

golang中的类型转换(string,int,float)

go是一种强类型的语言,所以如果在赋值的时候两边类型不一致会报错,就连int都分为int,int8,int32,int64这么多种。但同一基础类型(int,float)的变量在转换时很简单,都可以通过括号括起来即可,因为他们的底层都是一个类型的。使用type (a)这种形式来进行强制类型转换,比如var a int32 = 10var b int64 = int64(a)常用的还有int和string之间的相互转换,这种就没法直接用type()转换方式了。最常用的还是st...
原创
395阅读
0评论
1点赞
发布博客于 4 月前

golang gorm使用心得小结,持续更新

官方文档:http://gorm.book.jasperxu.com1,目前暂不支持批量插入数据,可以用SQL语句直接执行或循环单次create。但因为业务需要知道插入后的主键ID,所以只能循环新增,循环新增后可通过.操作取ID。如:err = db.Create(m).Errorif err != nil { return }id = m.ID2,删除数据分为软删除和硬删除。软删即改变数据状态为删除但不从表中删除,如果表中有deleted_at字段(结构体中的DeletedA
原创
308阅读
0评论
0点赞
发布博客于 4 月前

MySQL错误解决——[Err] 1030 - Got error 168 from storage engine

用docker装的MySQL映射到本地路径,然后突然遇到这个报错,表面上看起来是存储引擎出问题了,但建表引擎都没有改过。回想一下是映射的路径文件被我移到别的地方了,应该是影响到了,所以我选择删除原来的docker镜像重新run到新的路径,问题解决。...
原创
863阅读
0评论
0点赞
发布博客于 4 月前

golang 之 复杂josn的解析unmarshal

{ "metadata": { "timestamp_utc": "2020-11-27 12:26:19", "music": [ { "label": "华研国际音乐", "play_offset_ms": 39180, "result_from": 3, "external_ids": { .
原创
466阅读
0评论
0点赞
发布博客于 4 月前

副业搞起来,港美股开户打新了解一下

 
发布Blink于 4 月前

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 } 比如说
原创
105阅读
0评论
0点赞
发布博客于 5 月前

go语言中内置打印函数print,println和fmt包中fmt.Print,fmt.Println的区别

print和println 在golang中 是属于输出到标准错误流中并打印,官方不建议写程序时候用它,可以在debug时候用,而且后期不保证是否会继续保留。而fmt.Print,fmt.Println属于官方包fmt中自带的打印方法,在golang中 是属于标准输出流,一般使用它来进行屏幕输出.在这之前先介绍一下printf方法:"fmt"包中的"Printf"函数的 完整说明如下: Printf(format string, v ...) (n int, errn
原创
570阅读
0评论
0点赞
发布博客于 5 月前

golang errgroup的用法及用处

一般在golang 中想要并发运行业务时会直接开goroutine,关键字go ,但是直接go的话函数是无法对返回数据进行处理error的。解决方案:## 初级版本:一般是直接在出错的地方打入log日志,将出的错误记录到日志文件中,也可以集合日志收集系统直接将该错误用邮箱或者办公软件发送给你如:钉钉机器人+graylog.## 中级版本当然你也可以自己在log包里封装好可以接受channel。利用channel通道,将go中出现的error传入到封装好的带有channel接受器..
转载
1326阅读
0评论
0点赞
发布博客于 6 月前

安装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
原创
1602阅读
0评论
4点赞
发布博客于 6 月前

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.
原创
1343阅读
0评论
0点赞
发布博客于 6 月前

这是我见过写的最清晰易懂的关于go context的文章

转自:https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-context/6.1 上下文 Context上下文context.Context是用来设置截止日期、同步信号,传递请求相关值的结构体。上下文与 Goroutine 有比较密切的关系。context.Context是 Go 语言中独特的设计,在其他编程语言中我们很少见到类似的概念。context.Context是 Go 语言在 1.7 版...
转载
48阅读
0评论
0点赞
发布博客于 7 月前

PyCharm/Goland/PhpStorm/IDEA/WebStorm等使用教程

为什么发不了?!!备份住!点击直达:https://www.jianshu.com/p/8bb7f97f56b8
转载
66阅读
0评论
0点赞
发布博客于 7 月前

Redis面试真题——如何用Redis统计网站的用户访问量【pdd】

pdd有数亿的用户,那么对于某个网页,怎么使用Redis来统计一个网站的用户访问数呢?方案一、使用有序集合每当一个用户上线时, 我们就执行 ZADD 命令, 将这个用户以及它的在线时间添加到指定的有序集合中:ZADD "online_users" <user_id> <current_timestamp> 通过使用 ZSCORE 命令检查指定的用户 ID 在有序...
原创
79阅读
0评论
0点赞
发布博客于 7 月前

系统设计——如何设计一个高性能的短链接系统?

短链系统设计看起来很简单,但如何设计一个高性能短链系统呢,这也是面试中非常常见的一道设计题。这一个看起来简单的短链系统其实包含了挺多的知识点的。 首先,为什么要用锻炼? 短链跳转的基本原理是什么? 短链生成的几种方法你知道吗? 高性能短链的架构如何设计? 1. 短链的好处短链现在基本上属于各大公司发短信必备技术了,比如CSDN发我的验证码短信,下方蓝色链接明显是短链。而当我点开浏览器之后,发现这个短链已经跳转到其根本的长链接...
原创
507阅读
0评论
0点赞
发布博客于 7 月前

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.
原创
256阅读
0评论
0点赞
发布博客于 7 月前

【高频算法题】这28道题本周被50家公司问了128次

大家都知道现在各大互联网公司的招聘面试已经越来越注重算法了,除了校招要笔试之后,校招社招的面试过程中都会手撕算法题。尤其是字节跳动,动不动就给甩给你一个medium甚至hard。但是大家的时间可能没那么多,无法刷完所有题甚至一些准备不充分的同学很多类型的题都没见过。这里有网上总结的大厂超高频算法题,面试的时候其实面试官也就爱问这几类题,真搞懂了这些题面试的时候遇到原题或类似的题目可能性还是非常大的。哪28道题在本周被这么多公司考察呢?比如说LR...
原创
55阅读
0评论
0点赞
发布博客于 7 月前

欢迎关注我的公众号【程序员面试精选】

毕业之后的第一份工作是PHP后端开发工程师,当时因为从没接触过PHP所以相当于要从头学习语言。经过一段时间的学习之后,对于工作已经游刃有余了。但是除了编程语言,计算机基础的东西很多都遗忘了。比如说,操作系统,数据结构与算法,计算机网络,数据库等。这些东西可以说是程序员的地基,地基不牢地动山摇。可能会在你遇到问题的时候无从下手,毕竟实践还是需要理论知识指导的。现在转作go后端开发,我发现除了语言不一样,其他一些基础都是通用的。在后来面试准备复习的时候,我也关注了一些知名技术公众号。这些公众号一开始可能文
原创
202阅读
0评论
0点赞
发布博客于 7 月前

【建议收藏】最全的MySQL索引面试知识点

转自架构之美一、什么是索引?​索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据;索引的实现通常使用B树及其变种B+树。更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。二、索引有哪些优缺点?索引的优点1.可...
转载
92阅读
0评论
0点赞
发布博客于 7 月前

Go语言学习 之 Validate验证器用法速查

刚从PHP转过来写了几天时间的go,感觉其最大的特点就是强类型。不仅仅是对变量类型的限制很强,其对每个结构体定义的字段类型限制也很强,这就会导致刚入门go的同学很不习惯。比如限制一个字段的值为大于10的int类型,而你传了个9就会报错。当然这样也有一个好处就是对于参数校验不用另外写条件来判断了,大大简化了入参校验。总结一下常用的验证器写法以便后续查看。Go的内置验证器有以下几大类别:(为空)必填验证 类型验证 大小、长度验证 字段值比较验证 文件验证 日期验证 字符串检查验证 其他验证
原创
744阅读
0评论
0点赞
发布博客于 7 月前

Go语言学习 之 Golang database/sql与Gorm基础使用方法总结

Golang database/sql基础使用方法总结1,原生用法写sql语句操作db.Query可以查询多行;db.QueryRow查询特定的行。db.Exec 执行更新插入删除操作2,Gorm封装用法Gorm是个go开发人员友好的ORM库,主要包含以下功能点全功能 ORM (无限接近)关联 (Has One, Has Many, Belongs To, Many To Many, 多态)钩子 (在创建/保存/更新/删除/查找之前或之后)预加载事务复合主键SQL 生成器数据
原创
821阅读
0评论
0点赞
发布博客于 7 月前

不知道如何技术变现?19个程序员接私活平台汇总!

​关于程序员接私活,社会各界说法不一。按照作者的观点来说如果你确实急用钱价格合适而且空闲时间,那就去做。如果不怎么缺钱,那就接私活之前要好好考虑。私活的钱不好挣是一个方面,更重要的是如果你把做私活的时间花在提升自己上,产生的价值就要大得多。等你提升了自己,提升了固定薪水,远比拿的这点私活的钱划算。千万不要捡了芝麻丢了西瓜。如果你主业上遇到了瓶颈,平时的时间比较充分,想有一些额外的收入,同时为了保持技术的熟练度,这种情况下,是可以考虑接一些私活的。对于那种投入时间巨大,...
转载
802阅读
0评论
0点赞
发布博客于 8 月前

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/将该文件复制到主目录(~)下注.
原创
162阅读
0评论
0点赞
发布博客于 8 月前

Go语言学习 之 Go环境搭建、环境变量释义及代码目录结构(一)

接触一门新的语言首先就要搭建环境,而新手在搭建的时候往往会遇到很多问题,看到网上的搭建教程各式各样往往不知道要按哪个搭建,真是太难了。要完成环境的搭建首先还是要搞清楚搭建中的理论知识,知道这些环境变量为什么要配置,配置了会产生什么样的效果。下面我总结一下我搭建过程中遇到的问题,本文不会详细介绍搭建步骤,更偏重理论知识,如有错误欢迎指出,相互学习。Go及Goland安装Go安装及配置:可参考:https://blog.csdn.net/zxy_666/article/details/80182
原创
141阅读
0评论
0点赞
发布博客于 8 月前

高频面试题——你真的搞懂物理内存与虚拟内存了吗

​虚拟内存是什么?这是一个面试中经常被提到的问题,大多数人可能只记住了内存地址映射和缺页置换,但你真的搞懂了为什么会有虚拟内存了吗,它存在的作用是什么呢?要想搞懂虚拟内存,我们先从头来回顾一下虚拟地址分段分页的知识吧。一、 虚拟地址空间在早期的计算机中,程序是直接运行在物理内存上的,那个时候的计算机和程序内存都很小。程序运行时会把其全部加载到内存,只要程序所需的内存不超过计算机剩余内存就不会出现问题。但由于程序是可以直接访问物理内存的,这也带来了内存数据的不安全性,轻则程序挂掉,重则操作
原创
460阅读
0评论
1点赞
发布博客于 8 月前

微信公众号开发源码分享

微信公众号开发源码,包括消息自动回复,聊天机器人,天气预报,菜单开发,数据库操作,翻译功能等基础功能
zip
发布资源于 8 月前

Redis的expire的缓存过期策略是如何实现的?

自知对Redis的知识了解的还算不错,但当面试官问到expire是怎么实现的时候我突然懵了,虽然最后凭借了猜测也猜出了定期+惰性删除,但总感觉这块之前复习遗漏了,现在来重新梳理一下。面试官:你知道expire设置过期时间的工作原理是什么吗?到期的数据是怎么过期的呢?我:emmm…我觉得是采用了定期删除,每隔一段时间去扫描检测key对应的缓存是否过期,如果过期了就删除。面试官:那如果key刚好在你两次扫描之间过期了呢?如果key特别多全量扫描不是很耗费性能吗?我:嗯这样的话采用全量定期删除确认不够好,
原创
377阅读
0评论
0点赞
发布博客于 8 月前

PHP的apcu是什么,opcache又是什么?

# APCuAPCu isAPCstripped of opcode caching.这是apcu的官方文档解释,简单的说APCU是从APC剥离出来的用户数据缓存功能,而去掉了apc的opcode cache。所以后来:APCu = APC UserAPC的主要用途有两项:将PHP代码编译之后所产生的bytecode暂存在共享内存内供重复使用,以提升应用的运行效率。(Opcode Cache) 提供用户数据缓存功能,需要显示的调用,和redis/memcache类似。(Us...
原创
609阅读
0评论
0点赞
发布博客于 11 月前
MySQL面试知识点追命连环问(三)锁机制、日志备份及分表策略
发布Blink于 1 年前

MySQL面试知识点追命连环问(三)锁机制、日志备份及分表策略

​上次我们讨论了MySQL的事务索引,SQL优化和处理器。MySQL面试知识点追命连环问(二)事务、索引及SQL优化这次我们继续来追命连环问关于MySQL锁机制,日志备份和扩展性等相关的内容。 锁机制 日志备份 集群 分库分表 1. MySQL锁机制面试官:你知道MySQL的锁机制吗?答:知道的。MySQL锁按加锁粒度可以分为行锁表锁和...
原创
337阅读
0评论
0点赞
发布博客于 1 年前
MySQL面试知识点追命连环问(二)事务、索引及SQL优化
发布Blink于 1 年前

MySQL面试知识点追命连环问(二)事务、索引及SQL优化

目录1. MySQL事务2. MySQL索引3. SQL优化4.常见问题​上次我们讨论了MySQL的运行流程及原理,字段设计,存储引擎和查询缓存。MySQL面试知识点追命连环问(一)这次我们继续来追命连环问关于事务,索引,SQL优化等相关的内容。准备好了吗? 事务 索引 SQL优化 常见问题 1. MySQL事务面试官:你知道...
原创
2327阅读
1评论
4点赞
发布博客于 1 年前
一次完整的HTTP请求过程是怎么样的呢?【图文详解】
发布Blink于 1 年前

Git查看某个文件的历史提交者和详细变更的方法

查询历史记录主要用到git log命令,简单好用git log默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个 SHA-1 校验和、作者的名字 和 电子邮件地址、提交时间,最后缩进一个段落显示提交说明。1.查询fileName相关的commit记录git log filename2.查看这个文件每次提交的详细dif...
原创
414阅读
0评论
0点赞
发布博客于 1 年前

一次完整的HTTP请求过程是怎么样的呢?【图文详解】

前言当我们在浏览器栏输入:https://blog.csdn.net/dianxin113 的时候,具体发生了什么呢?这个请求是怎么到达服务器及返回结果的呢?概述 浏览器进行DNS域名解析,得到对应的IP地址 根据这个IP,找到对应的服务器建立连接(三次握手) 建立TCP连接后发起HTTP请求(一个完整的http请求报文) 服务器响应HTTP请求,...
原创
1792阅读
2评论
5点赞
发布博客于 1 年前
MySQL面试知识点追命连环问(一)
发布Blink于 1 年前

MySQL面试知识点追命连环问(一)执行流程&存储引擎&查询缓存

​来了,朋友们,追命连环问系列之MySQL部分开始了。准备好了吗?本次连环问主要设计以下四个方面: MySQL执行流程 MySQL存储引擎 表字段如何设计 查询缓存 一,MySQL的执行流程面试官:你知道一条sql语句进来的流程是什么吗?我:知道,我来说一下。MySQL的架构是由两部分组成的:server层和存储引擎层。Server层...
原创
677阅读
0评论
0点赞
发布博客于 1 年前
Windows10下VirtualBox中安装Ubuntu只有32bit的解决方法
发布Blink于 1 年前

Windows10下VirtualBox中安装Ubuntu只有32bit的解决方法

新电脑想安装个Linux的虚拟机,然后选择了在virtualbox中Ubuntu,但却一直只有32bit的,无法安装64bit的。这样查了一下网上的说法,一般有以下几种:1,未开始虚拟化技术,需要到BIOS中打开。这个可以在任务管理器的CPU中查看。我的电脑本来就已经打开虚拟化技术了,所以不是这个问题。2,进入控制面板->卸载程序->启用或关闭win...
原创
971阅读
0评论
0点赞
发布博客于 1 年前
教你如何迅速秒杀掉:99%的海量数据处理面试题
发布Blink于 1 年前
程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦
发布Blink于 1 年前
张小龙-年薪近3亿的微信之父,他是如何做到的?
发布Blink于 1 年前
Redis追命连环问,你能回答到第几问?(下)
发布Blink于 1 年前

Redis追命连环问,你能回答到第几问?(下)主从复制及哨兵原理

上次的Redis连环问问到了Redis是什么,Redis支持的数据类型,缓存雪崩缓存穿透缓存击穿,内存淘汰策略和持久化策略等。​Redis常见面试题连环问,你能回答到第几问?(上)Redis常见面试题连环问,你能回答到第几问?(中)Redis常见面试题连环问,你能回答到第几问?(下)这次来继续问: Redis主从复制机制 Redis...
原创
371阅读
0评论
0点赞
发布博客于 1 年前
Redis常见面试题连环问,你能回答到第几问?(中)
发布Blink于 1 年前
Redis追命连环问,你能回答到第几问?(上)
发布Blink于 1 年前
程序员一般通过什么途径接私活?
发布Blink于 1 年前

Redis追命连环问,你能回答到第几问?(中)Redis性能,与memcache区别,淘汰策略及数据持久化

​上次的Redis连环问问到了Redis是什么,Redis支持的数据类型和缓存雪崩缓存穿透缓存击穿。Redis常见面试题连环问,你能回答到第几问?(上)Redis常见面试题连环问,你能回答到第几问?(中)Redis常见面试题连环问,你能回答到第几问?(下)这次来继续问: Redis为什么这么快? Redis和memcache的区别...
原创
1714阅读
0评论
0点赞
发布博客于 1 年前

Redis追命连环问,你能回答到第几问?(上)Redis简介,数据类型及缓存雪崩缓存击穿缓存穿透

Redis常见面试题连环问,你能回答到第几问?(上)Redis常见面试题连环问,你能回答到第几问?(中)Redis常见面试题连环问,你能回答到第几问?(下)Redis是后端工程师必备的一项技能,下面分享一位求职者在面试过程中遇到的问题。面试官说:“我们开始吧。看了你的简历,觉得你对redis应该掌握的不错,我们今天就来讨论下redis…”。我想:“来就来,兵来将挡水来土掩”。...
原创
1013阅读
0评论
1点赞
发布博客于 1 年前

Redis和memcache有什么区别与不同?如何选择?

问:Redis和memcache都是常用的缓存工具,但他们有哪些不同你知道吗?平常应用中怎么选择呢?先说结论,我认为他们有以下几方面的不同:1、Redis和Memcache都是将数据存放在内存中,memcache还可用于缓存其他东西,例如图片、视频等等,但最大只能缓存1M。Redis最大缓存可达512M。2、Redis不仅仅支持简单的k/v类型的数据,同时还提供lis...
原创
259阅读
0评论
0点赞
发布博客于 1 年前

语言只是工具,能力才是内功。

最近参加了一个行业内的技术大会,也听了几位大牛的演讲,有一些个人感悟。1. 我该学习什么语言我发现不管是没有工作的在校大学生,还是工作了几年的职场初级程序员,当然包括我在内。在学编程与找工作的时候,第一个想到的问题就是我该学习什么语言?php是不是没落了,Java是不是太多了,golang是不是职位少,python是不是只能做算法?你总会觉得,对于程序员来说,编程语言是最重要的。毕竟天天干活...
原创
326阅读
0评论
0点赞
发布博客于 2 年前

Git核心概念及版本控制原理

本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手。版本控制系统Git 是目前世界上最优秀的分布式版本控制系统。版本控制系统是能够随着时间的推进记录一系列文件的变化以便于你以后想要的退回到某个版本的系统。版本控制系统分为三大类:本地版本控制系统,集中式版本控制系统和分布式版本控制系统本地版本控制(Local Versio...
转载
365阅读
0评论
1点赞
发布博客于 2 年前

从零开始学习Thrift之一(了解Thrift)

从零开始学习Thrift之一(了解Thrift)1. What is ThriftThrift is a lightweight, language-independent software stack for point-to-point RPC implementation. Thrift provides clean abstractions and implementations ...
原创
111阅读
0评论
2点赞
发布博客于 2 年前

cmposer避坑指南,区分json与lock,install与update及如何解决冲突

要避免采composer坑, 我们首先要知道composer是什么,是干什么用的,本文主要分以下几个部分自动加载与composercomposer.json VS composer.lockcomposer install VS composer updatecomposer VS git为什么要自动加载?换句话说就是,如果不自动加载一直用include/require来包含类库文...
原创
1258阅读
2评论
3点赞
发布博客于 2 年前

微信公众号开发踩坑指南(3)——公众号返回超链接点击跳转并自动关闭

前段时间产品提了一个听起来很奇葩的需求,其实做起来也感觉很奇葩。公众号在触发某些事件后,返回给用户具体的文案回复,但这个文案回复需要带超链接的,在用户点击超链接之后做一些CURD操作并改变改用户的状态,然后自动的关闭刚才点击超链接打开的窗口。这个需求听起来感觉不是很难,但做起来还是有一些坑的。第一坑:用户触发事件返回文案,这个如果是点击菜单触发文案就很好做,但需要的是点击超链接后仍...
原创
3315阅读
0评论
1点赞
发布博客于 2 年前

根据URL下载单个图片与批量打包下载图片(文件同理)

根据url下载图片看起来很简单,做起来还是有点曲折的首先,直接file_put_content()的话可以下载图片但不知道图片保存在什么位置,所以必须要调用浏览器下载,使用header头。function download($url,$filename ){ $title=substr($filename,strrpos($filename,'/')+1); $file...
原创
7969阅读
0评论
1点赞
发布博客于 3 年前

微信公众号开发踩坑指南(2)——access_token失效接口调用冲突"errcode":40001

微信的access_token真的是一个天坑,开发者社区也是一片哀嚎,还一直以为是微信的bug。这个token决定了接下来的一系列功能,所以token失效代表后面的功能都会收到影响。一开始token获取后在有效期内失效我还以为是后一个获取的token覆盖了前一个token,导致前一个失效。但是,我的token都是直接去memcache中读取的,而不是重新获取的,难道在失效的一瞬间两个接口请...
原创
4447阅读
0评论
0点赞
发布博客于 3 年前

微信公众号开发踩坑指南(1)——服务器验证与Token获取失败原因

最近在做公司的微信公众号开发,微信官方的wiki写的也不是很详细,一不小心就入了一个坑。一开始入手的时候觉得有点混乱,开发完成之后发现其实不难,很多功能都是获取access token然后到微信指定的URL去换取你需要的东西,比如自定义菜单,带参二维码,模板消息等等。此文记录一下开发过程中遇到的坑,希望有缘看到这篇文章的人可以少踩些坑。微信开发首先要进行服务器接口的验证,微信要确定填写的域名是...
原创
12079阅读
0评论
0点赞
发布博客于 3 年前

python安装numpy+mkl报错的处理方法

IOError: [Errno 13] Permission denied: ‘d:\python27\Lib\site-packages
umpy\core\multiarray.pyd’最终发现是在安装的同时,有在GUI shell中用import numpy,导致了multiarray.pyd文件的写保护需要退出python编辑界面,然后重新安装,则问题解决。
原创
4675阅读
0评论
2点赞
发布博客于 3 年前

matlab2012a到期重新激活

光棍节结束,math公司也对用户端进行调整,很多朋友的matlab都被要求重新添加许可文件。然而,基本都是激活完成,打开,继续激活,然后激活完成重复。      这是因为激活的文件只到2017年11月11日。 解决办法:打开MATLAB安装路径下crack的文件夹,用写字本打开里面的dat文件,将以下代代码替换原有的代码,然后保存退出,重启MATLAB。(matlab R2012b...
转载
10234阅读
6评论
2点赞
发布博客于 4 年前

libsvm gridregression.py

libsvm gridregression.py 放在C:\libsvm-2.xx\python里面就可以了
py
发布资源于 4 年前

死锁产生的原因,必要条件及解决办法

死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列,则称系统处于不安全状态。产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当产生死锁的必要条件:互斥条件:进程要
转载
381阅读
0评论
0点赞
发布博客于 4 年前

Linux查看日志文件命令tail

linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。一、tail命令语法tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
原创
1040阅读
0评论
0点赞
发布博客于 4 年前

七大查找算法浅析

转自:http://www.cnblogs.com/maybe2030/p/4715035.html阅读目录1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找  查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的
转载
2121阅读
0评论
0点赞
发布博客于 4 年前

函数重载之函数的默认参数

昨天面试的时候,被问到函数重载时第三个参数为空,只有两个参数会不会调用三个参数的函数,我脱口而出就说不会,回来想想感觉好像不对,然后查了一下资料,发现真的错了例子:int fun(int a,int b,int c=0)  fun(5,8)是可以调用上面那个函数的,但如果又存在一个函数int fun(int a,int b)则,fun(5,8)因不知道调用哪个会
原创
1217阅读
0评论
2点赞
发布博客于 4 年前

C++设计模式简介

设计模式为开发人员提供一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特征:封装、继承、多态等。常见的设计模式主要有:工厂模式、策略模式、适配器模式、单例模式、原型模式、模板方法模式、建造者模式、外观模式、组合模式、代理模式、享元模式、桥接模式、修饰模式、备忘录模式、中介者模式、职责链模式、观察者模式、状态模式。设计模式依据目的可分为三种类型:创建型、
转载
385阅读
0评论
0点赞
发布博客于 4 年前

Effective C++ 55个条款概述

视C++为一个语言联邦C++高效编程守则视状况而变化,取决于你使用C++的哪一部分。尽量以const,enums,inline替换#define对于单纯常量,最好以const对象或enums替换#defines;对于形似函数的宏(macros),最好改用inline函数替换#defines。尽可能使用const将某些东西声明为const可帮助
转载
313阅读
0评论
0点赞
发布博客于 4 年前

QT信号和槽机制的介绍

https://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/index.htmlQT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上。QT 支持下
转载
548阅读
0评论
0点赞
发布博客于 4 年前

A+B超过long long 大数相加问题

Problem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B. InputThe first line of the input contains an integer
转载
1186阅读
0评论
0点赞
发布博客于 4 年前

浅析静态库和动态库的区别

什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 所谓静态、动态是指链接。回顾一下,将一个程序编译成可执行程序的步骤: 静态库之所以成为【静态库】,是因为在链接阶
原创
291阅读
0评论
0点赞
发布博客于 4 年前

C/C++中static用法详解及其与const的区别

C 语言的 static 关键字有三种(具体来说是两种)用途:静态局部变量:用于函数体内部修饰变量,这种变量的生存期长于该函数。int foo(){ static int i = 1; // note:1 //int i = 1; // note:2 i += 1; return i; } 要明白这个用法,我们首先要了解
原创
812阅读
1评论
2点赞
发布博客于 4 年前

Linux Makefile文件编写与使用学习

1.makefile概述    Windows环境下IDE会帮你完成makefile文件的编写,但在UNIX环境下你就必须自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要
转载
386阅读
0评论
0点赞
发布博客于 4 年前

计算机网络基础知识总结

计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝地广人多,地方性语言也非常丰富,而且方言之间差距巨大。A地区的方言可能B地区的人根本无法接受,所以我们要为全国人名进行沟通建立一个语言标准,这就是我
转载
195阅读
0评论
1点赞
发布博客于 4 年前

数据库基本概念整理及常用SQL语句

数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结吧。希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过的同学能掌握一些数据库的基础知识。第一节      一、相关概念       1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。       2. Da
原创
6836阅读
0评论
9点赞
发布博客于 4 年前

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文
转载
3293阅读
1评论
0点赞
发布博客于 4 年前

C++ STL之字符串容器string用法详解

C++STL提供了string基本字符系列容器来处理字符串,可以把string理解为字符串类,他提供了添加删除,替换,查找和比较等丰富的方法; 虽然使用vector 这样的向量也可以处理字符串,但功能比不上string。向量的元素类型可以是string,如vector这样的向量,实际上就类似于C语言中的字符串数组; 使用string容器,需要包含头文件声明#incl
转载
3148阅读
0评论
4点赞
发布博客于 4 年前

操作系统常考知识点总结

1、进程是并发过程中程序的执行过程2、进程的特征:结构特征动态性并发性独立性异步性3、临界区指在每个进程中访问临界资源的那段代码4,现在操作系统中申请资源的基本单位是进程,在CPU得到执行的基本单位是线程,进程是由程序段、数据段、PCB组成的5,对临界资源应采取互斥访问方式来实现共享6,P.V操作是一种低级进程通信原语7,对于记录性信号量,在执行一次
转载
277阅读
0评论
1点赞
发布博客于 4 年前

C/C++程序编译流程解析(预处理->编译->汇编->链接)

程序的基本流程如图:1. 预处理预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理    ①将所有的“#define”删除,并且展开所有的宏定义
转载
330阅读
0评论
0点赞
发布博客于 4 年前

校招笔试面试中IP地址常见问题总结

IP地址基础知识ip地址总共分为5类,A、B、C、D、EIP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址为了便于管理,数据传输等,将IP地址划分为网络号何主机号。并且按照网络号位数与主机号的位数进行分类。网络号的位数直接决定了可以分配的网络数;主机号的位数则决定了网络中最大的主机数针对不同的网络规模分配不同类型的IP地址。但是往往或造成,
转载
2256阅读
0评论
1点赞
发布博客于 4 年前

Linux进程间通信概述

进程通信的目的数据传输 一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间共享数据 多个进程想要操作共享数据,一个进程对共享数据通知事 一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。资源共享 多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁
转载
280阅读
0评论
0点赞
发布博客于 4 年前

markdownpad2 key lincence注册码

为了传图找了一个授权秘钥,亲测可用,分享出来。注册邮箱地址:Soar360#live.com请将#号替换为@符号。授权秘钥:GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwf
转载
10384阅读
0评论
1点赞
发布博客于 4 年前

win7滑轮滚动excel就停止工作的解决方法

重装系统后又安装了office 2013,但这次的excel正常使用没什么问题,一拉进度条或滚动滑轮就停止工作,网上很多什么修改注册表和删除文件的方法都没有,安装Microsoft的补丁也没用,最后下载替换了一个dll文件就解决了,不管32还是64位都可以解决。下载地址:http://www.dllzj.com/osf.dll/解压后把dll文件放到office15文件夹下替换即可
原创
3510阅读
0评论
0点赞
发布博客于 4 年前

浅析openstack虚拟化技术

OpenStackOpenstack:OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives
原创
9639阅读
0评论
6点赞
发布博客于 4 年前

使用hexo+GitHub搭建自己的博客中遇到问题的解决方法及博客美化

之前一直就想搭建自己的个人博客了,但一直拖着没动手,昨天终于花了一天的时间完成了,从安装到域名注册到配置美化,但还没有完成,之后还会一直继续修改。关于搭建的教程网上各种教程,但是要学会分辨,有些是错的,这里我也不多说了,只说一下搭建过程中遇到的问题及解决方法。port:4000端口打不开,可能被占用了,改为5000。但并不是修改配置文件中的port参数,而是he
原创
2507阅读
0评论
1点赞
发布博客于 4 年前

排序算法之归并排序的C++实现

归并排序是典型的分治法思想排序,其先归再并,基本思想如下:1. 从下往上的归并排序:将待排序的数列分成若干个长度为1的子数列,然后将这些数列两两合并;得到若干个长度为2的有序数列,再将这些数列两两合并;得到若干个长度为4的有序数列,再将它们两两合并;直接合并成一个数列为止。这样就得到了我们想要的排序结果。2. 从上往下的归并排序:它与"从下往上"在排序上是反方向的。它基本包括3
原创
432阅读
0评论
0点赞
发布博客于 4 年前

C++内存管理详解

By ShinChan Published Sep 25 2014Contents1. 内存分配方式1.1. 简介1.2. 明确区分堆与栈1.3. 堆和栈究竟有什么区别2. 控制C++的内存分配2.1. 重载全局的new和delete操作符2.2. 为单个的类重载new[]和delete[]3. 常见的内存错误及其对策4. 针与数组的
转载
131阅读
0评论
0点赞
发布博客于 4 年前

C++数组替代品之vector&array用法浅析

1、模板类vector1.1 基本定义及操作vector是一种动态数组,可在运行阶段设置vector对象的长度,可在末尾附加数据也可在中间插入数据,它使用new和delete来管理内存。首先,要使用vector对象,必须包含头文件vector。其次,vector包含在名称空间std中,可使用using编译指令、using声明或std::vector第三,模板使用不同的语法来指出
原创
480阅读
0评论
1点赞
发布博客于 4 年前

设计模式之单例模式的介绍及C++实现

单例模式目录单例模式模式动机模式定义模式结构时序图代码分析模式分析实例优点缺点适用环境模式应用模式扩展总结1. 模式动机对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如何保证一个类只有一个实
转载
172阅读
0评论
0点赞
发布博客于 4 年前

排序算法之快速排序的C++实现

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试题。该方法的基本思想是:1.先从数列中取出一个数作为基准数,一般取第一个数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。虽然快速排序称为
原创
337阅读
0评论
1点赞
发布博客于 4 年前

排序算法之希尔排序的C++实现

希尔排序其实是直接插入排序的一种优化,不过是增加了一个步长进行分组插入罢了,又称为缩小增量排序。其基本思想:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待gap=1时,再对全体元素进行一次直接插入排序,数组便是有序的了。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比直接插
原创
639阅读
0评论
0点赞
发布博客于 4 年前

每日一练之Longest Common Prefix【LeetCode No.14】——求字符串的最长公共前缀

题目:Write a function to find the longest common prefix string amongst an array of strings.分析:只需用第一个字符串与后面的进行比较,最大长度不能大于第一个字符串的长度class Solution {public: string longestCommonPrefix(vector& s
原创
553阅读
0评论
0点赞
发布博客于 4 年前

简单排序算法之选择排序、直接插入排序和冒泡排序

简单排序包括简单选择排序、直接插入排序和冒泡排序。时间负责度均为O(n2).1、 简单选择排序(Selection sort)——不稳定基本思想:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 Templatevoid SelectS
原创
925阅读
0评论
1点赞
发布博客于 4 年前

常见排序算法的稳定性分析和结论

首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐
转载
1253阅读
0评论
1点赞
发布博客于 4 年前

Win7如何简单的关闭445端口及445端口入侵详解

最近永恒之蓝病毒攻击了很多教育网的同学,下面我们就来看一下如何关闭445端口根据网络安全机构通报,这是不法分子利用NSA黑客武器库泄漏的“永恒之蓝”发起的病毒攻击事件。“永恒之蓝”会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。由于以前国内多次爆发利用445端口传播的蠕虫,运
原创
229999阅读
17评论
27点赞
发布博客于 4 年前