自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 linux--sh -c

linux--sh -c在Linux使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式。比如要向 test.asc 文件中随便写入点内容,可以:$ echo “信息” > test.asc$ echo “信息” >> test.asc下面,如果将 test.asc 权限设置为只有 root 用户才有权限进行写操作:$ sudo chown root.root test.asc然后,我们使用 sudo 并配合 echo 命令再次向修改权限之后的 test.asc

2020-10-05 12:54:57 4798

原创 mac 安装 redis-cli

第一步:brew tap ringohub/redis-cli第二步:brew install redis-cli

2020-09-16 14:56:47 1094

原创 git commit 规范

https://zhuanlan.zhihu.com/p/69989048

2020-07-24 00:21:53 187

原创 Chrome安装gilffy插件

1、下载:http://www.cnplugins.com/zhuanti/newinstall.html2、安装:http://www.cnplugins.com/zhuanti/newinstall.html

2020-07-24 00:19:59 577

原创 数学-向量运算

1、外积(差乘)定义:向量a与b的外积a×b是一个向量,其长度等于|a×b| = |a||b|sin∠(a,b),其方向正交于a与b。并且,(a,b,a×b)构成右手系。特别地,0×a=a×0=0.此外,对任意向量a,a×a=0P=(x1,y1) Q=(x2,y2)PxQ = x1y2-x2y1例子:a=(1,2,0) b=(3,40) i=(1,0,0) j=(0,1,0) k=(0,0,1)axb ==(2*0-0*4)i-(1*0-0*3)j+(1*4-2*3)...

2020-07-06 14:25:08 4782

原创 golang-gvm

https://mp.weixin.qq.com/s/SEPP56sr16bep4C_S0TLgA

2020-06-27 14:54:48 167

翻译 HTTP-308

原文地址:https://airbrake.io/blog/http-errors/308-permanent-redirect308永久转移:是什么,怎么修复它?308是http的状态返回码,用来表示当前请求的资源已经永久的转移到其他的uri,一般通过返回header的location字段展示。308code是近期在2015年4月加入到http标准库的,文档RFC7538有对308...

2020-06-27 09:48:24 17727

原创 GC

1、python gcpython对象的销毁(garbage collection):Python使用了引用计数这一简单技术来跟踪和回收垃圾。在Python内部记录着所有使用中的对象各有多少引用。一个内部跟踪变量,称为一个引用计数器。当对象被创建时,就创建了一个引用计数,当这个对象不再需要时,也就是说这个对象的引用计数变为0时,它被垃圾回收。但是将垃圾回收不是实时的,而是由解释器在适当的时机,将垃圾对象占用的内存空间回收。a = 40 #创建对象<40>b = a #增加引用,&

2020-06-24 17:00:04 143

原创 思考方法

1.在彻底了解(Understand)你的问题之前,不要急着去寻找解决方案。你的目标应该是在问题领域内“解决”问题,而不是在方案领域内解决问题。2.列出(eNumerate)多种方案,不要只把眼睛盯在你最喜欢的方案上。3.选择一个候选方案,并阅读相关论文(Paper)。4.了解候选方案的产生背景(Historical context)。5.比较优点(Advantages)和缺点,扬长避短。6.思考(Think)!冷静地思考候选方案是否适合用于解决你的问题。要出现怎样异常的情况才会让你改变

2020-06-24 16:59:27 142

原创 几个有意思的定理

摘抄几个有意思的定律1、墨菲定律(Murphy’s Law)偶然发生的bug在线上一定会发生2、布鲁克定律(Brook’s Law)该定律指出:为已经延期的软件项目增加人手只会让项目延期得更厉害。3、霍夫施塔特定律(Hofstadter’s Law)该定律指出:即使你考虑到了霍夫施塔特定律,项目的实际完成时间总是比预期的要长。这个定律完美的说明了准确预估完成复杂任务所需时间是一件多么难的事……影响因素太多了,历史经验不可复用,人员变化,需求变更,程序员天生乐观等等,都让估算工期变

2020-06-24 16:59:09 476

原创 vim--操作的时候获取root权限

:w !sudo tee %

2020-06-24 16:58:23 1362

原创 系统优化

1、分库分表2、加缓存3、并发编程4、异步5、加服务器6、服务拆分

2020-06-24 16:57:48 103

原创 MYSQL--canal

https://github.com/alibaba/canal/wiki/QuickStarthttps://github.com/xingwenge/canal-phphttps://blog.csdn.net/woainimax/article/details/105991825

2020-06-24 16:57:24 123

原创 RPC

什么是rpc框架什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call)远程调用原理比如 A (client) 调用 B (server) 提供的remoteAdd方法: 首先A与B之间建立一个TCP连接; 然后A把需要调用的方法名(这里是remoteAdd)以及方法参数(10, 20)序列化成字节流发送出去; B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用(可能是localAdd

2020-06-24 14:55:06 291

原创 顺序,过程和oop编程的区别

过程编程中关键点是控制流(flow of control)oop编程中关键点是对象职责(responsibility)顺序编程和过程编程的区别是顺序编程不能实现控制反向,好莱坞原则(don't call us, we'll call you)

2020-06-22 13:59:44 273

原创 管理--优秀的团队

1、安全感(Psychological safety):在这个团队里,我们敢冒险,而且不会为此感到不安和难堪。2、可靠性(Dependability):我们能指望他人准时完成高质量的工作吗?3、结构和清晰度(structure & clarity):目标、角色和执行计划都是清楚明确的吗?4、工作意义(meaning of work):我们都是在做对各自来说个人意义重大的工作吗?5、工作影响(impact of work):我们从根本上认为自己所做的工作重要吗?...

2020-06-22 13:35:40 108

原创 php--编译和加载

1、phpize可以理解为侦查环境的作用。phpize工具会根据你已经安装的php配置情况生成对应的configure文件。2、php扩展动态加载和静态加载的区别静态加载直接写到php.ini动态加载,extention_load, find out wheter a extention is load dl(mysql.so) loading extension at running time...

2020-06-22 11:46:13 158

原创 php--编码

1、utf8和utf16EF BF BF 表示utf8FE FF 表示utf162、ord和chr互为逆操作,ord转化成ASCII,chr转化成字符串3、urlencode, 返回字符串,此字符串除了 -_.所有的非字母数字字符都将替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)...

2020-06-22 11:40:20 141

原创 思想

1、道德是一个人的隐私,拿道德去约束一个人本省就不是一个道德的事。2、古之欲明德于天下者,必先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其身;欲正其心者,先诚其意;欲诚其意者,先致其知;致知在格物。...

2020-06-22 11:24:42 92

原创 linux--cpu

1、查看cpu个数cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l2、查看每个物理cpu核数cat /proc/cpuinfo | grep "cpu cores" | uniq3、查看逻辑cpu核数cat /proc/cpuinfo | grep "processor" | wc -l4、cat /proc/cpuinfo,输出项含义processor :系统中逻辑处理核的编号。对于单核处理器,则认为是其C

2020-06-22 11:04:33 117

原创 linux--ps

ps -auf命令行解释:-a 显示所有用户的所有的进程-x 显示无终端的进程-u 显示更多信息-e 显示所有进程返回信息解释:Uid 进程所属用户id,那个用户创建来进程PID 进程idPPID 创建该进程的父进程C cpu使用率STIME 进程被创建的时间TTY 与进程有关的终端类型TIME 进程所使用的cpu时间名词解释:常驻进程,常驻进程一般是指系统进程,以root权限运行在后台,可以处理其他进程的请求。常驻进程没有终端,不能访问dev/t

2020-06-22 10:08:19 336

原创 vim 配置和常用命令

https://github.com/ma6174/vim

2020-06-22 09:28:01 96

原创 Linux--df du

文件系统df -k 查看磁盘空间filesystem 代表文件系统对应的设备文件所在的路径名(一般是硬盘上的分区)kbytes 分区包含的数据块数目used 已用空间avail 可用空间capacity 可用空间百分比mounted on 系统挂载点du -h --max-depth=1查看特定目录的使用情况...

2020-06-22 09:12:02 99

原创 linux--用户

1、用户ID0 管理员1-500 系统用户500以上 普通用户2、useradd 添加用户添加新用户useradd -d /home/user -g developer -m -s /bin/ks h -u 1111 useraccount-d 创建用户主目录-g 添加用户组-m 主目录不存在则创建-u 用户IDuseraccount 用户名3、usermod 修改用户信息4、userdel 删除用户5、groupadd 添加用户组6、更改用户密码.

2020-06-22 09:03:45 110

原创 linux--性能检查

性能检查1、vmstat,sar,mpstat检查是否存在cpu瓶颈vmstat:https://www.cnblogs.com/ftl1012/p/vmstat.htmlsar:https://blog.csdn.net/danielmoore/article/details/79083180mpstat:vmstat,free 检查是否存在内存瓶颈iostat 检查是否存在io瓶颈netstat 检查是否存在网络瓶颈...

2020-06-21 23:09:59 78

原创 linux--日志

日志守护进程: syslog 位于etc/syslog或者etc/syslogd 配置文件syslog.conf日志类型auth 用户认证时产生的日志,如login和suauthpriv 和auth 类似但只能被特定用户查看console 针对系统控制台的消息cron 系统定期执行计划任务时产生的日志daemon 某些守护进程产生的日志ftp ftp服务kern 系统内核消息local0.local7 由自定义程序使用lpr 与打印机相关mail 邮件日志

2020-06-21 22:54:24 217

原创 shell--知识点

1、shell是一种解释型的语言,是沟通内核和用户的桥梁,适合处理偏操作系统底层业务。2、普通用户shell的默认提示符是$;root用户shell的默认提示符是#。3、echo $$ 当前进程的idecho $0 当前shell脚本的文件名echo $n 传递给shell脚本的参数,n是一个数字,表示第几个参数echo $# 传递给shell脚本的参数个数echo $* 传递给shell脚本的所有参数echo $@ 传递给shell脚本的所有参数echo $? 上个命.

2020-06-21 20:47:35 187

原创 MYSQL--PDO

引用原文:prepared statements use fewer resourses and thus run faster.the developer can be sure that no SQL injection will occur.编码:utf8和utf16例子:$sex = 'male';$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');$s->bindParam(':s.

2020-06-21 20:11:41 109

原创 mysql--mysql注入

一个小例子:select * from table where id='$id' limit 0,1;select * from table where id='$id' #' limit 0,1;‘id=1 and 1=1’

2020-06-21 19:47:37 91

原创 加密算法

aes(advanced encryption standard)对称加密算法摘要算法(md5)是不可逆的,主要是对信息一致性和完整性验证对称加密算法是可逆的,他主要是保证私密信息不被泄漏

2020-06-21 19:44:41 154

原创 设计模式--模版方法

模版模式既然使用了继承,那么要肯定继承的意义,父类要成为子类的模版,所有重复的代码都应该上升到父类,而不是让每个子类重复当我们要完成在某一细节层次一致的一系列过程或步骤时,但某一步骤在更详细层次上的实现可能不同,我们通常考虑用模版方法解决定义一个算法骨架,而将一些步骤延迟到子类实现,模版方法使得子类可以不改变算法的结构重定义某步骤的实现优点:把不变的行为移到父类,去除子类中重复的代码...

2020-06-21 19:38:14 101

原创 OOP-原则

迪米特法则(最少知道原则)如果两个类不必彼此直接通信,那么两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。迪米特法则首先强调的前提是在类的结构设计上,每一个类都应该尽量降低成员的访问权限,强调类之间的松耦合。...

2020-06-21 17:44:16 149

原创 MYSQL--show variables

前言:mysqld服务维护两种变量:全局变量和会话变量,全局变量影响服务器的全局操作,会话变量影响具体客户端连接相关操作。 服务器启动时,将所有全局变量初始化为默认值,可以在选项文件或命令行中指定的选项来更改这些默认值,服务器启动后,通过连接服务器并执行SET GLOBAL var_name语句可以更改动态全局变量,要想更改全局变量,必须具有SUPER权限。 服务器还为每个客户端连接维护会话变量,连接时使用相应全局变量的当前值对客户端会话变量进行初始化,客户可以通过SET SESSION var_nam

2020-06-21 17:30:23 109

原创 python 变量不可更改对象和可修改对象

在python中,strings,tuples和numbers是不可更改的对象,而list,dict等则是可以修改的对象。1、不可变类型:变量赋值a=5后再赋值a=10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。2、可变类型:变量赋值la=[1,2,3,4]后再赋值la[2]=5则是将list la的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。python 函数的参数传递:1、不可变类型:类似c++的值传递,

2020-06-21 00:29:22 2726

原创 MYSQL--redolog,undolog,binlog

前言:redolog、undolog、binlog是什么?有什么用?原理是什么?对你有什么启发1、数据库整体认识:binlog是二进制文件,工作在server层undolog、redolog是事务日志,工作在innodb层(存储引擎层),事务日志的目的:实例或者介质失败,事务日志文件就能派上用场2、undolog2.1、定义undo log指在操作任何数据之前,首先将需操作的数据备份到一个地方,它是逻辑日志。作用:Undo Log是为了实现事务的原子性,InnoDB中用于实现

2020-06-20 17:43:48 189

原创 编程规范:单下划线、双下划线、头尾双下划线

1、__foo__: 定义的是特殊方法,一般是系统定义名字,类似__init__()之类2、_foo:以单划线开头的表示的是protected类型的变量或函数,即保护类型,只允许本身和子类访问。3、__foo:以双下划线开头的表示的是private类型的变量或函数,即私有类型,只允许本身访问。...

2020-06-17 10:53:47 1597

原创 认知过程

data(数据):呈现给你一个概念information(信息):告诉你它是什么knowledge(知识):告诉你它的前因后果wisdom(智慧):当你在生活中,遇到一些现象时,能想到【它跟认知资源有关】,能准确地抽象出基本地模型,用认知和资源来理解、解释这些现象。...

2020-06-17 09:49:12 166

原创 mysql-使用NULL的恩恩怨怨

1、不要使用 count(列名)或 count(常量)来替代 count(*), count(*)就是 SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。说明: count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行。2、count(distinct col) 计算该列除 NULL 之外的不重复数量。注意 count(distinct col1, col2) 如果其中一列全为 NULL,那么即使另一列有不同的值,也返回

2020-06-16 23:41:26 140

原创 运营知识自检

https://zixun.html5.qq.com/coolread/article?ch=001203&tabId=10798&tagId=MttTagSource&docId=6393850036647353348&dataSrc=135&pid=2&data_type=1&ctrid=10798&cityid=12098&url=http%3A%2F%2Fkuaibao%2Eqq%2Ecom%2Fs%2F20180118B0AO

2020-06-14 23:08:36 273

原创 缓存相关知识点

1.缓存命中率二八定律2.缓存穿透:2.1 缓存穿透是说访问一个缓存中没有的数据,但是这个数据数据库中也不存在。普通思路下我们没有从数据库中拿到数据是不会触发加缓存操作的。这时如果是有人恶意攻击,大量的访问就会透过缓存直接打到数据库,对后端服务和数据库做成巨大的压力甚至宕机。2.2 解决方案:缓存空对象。如果缓存未命中,而数据库中也没有这个对象,则可以缓存一个空对象到缓存。如果使用Redis,这种key需设置一个较短的时间,以防内存浪费。缓存预测。预测key是否存在。如果缓存的量不大

2020-06-14 21:19:39 175

空空如也

空空如也

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

TA关注的人

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