- 博客(25)
- 资源 (5)
- 收藏
- 关注
转载 阿里工程师谈,什么是好的代码
导读:我们每天都与代码打交道,但当被问道什么是好的代码时,很多人可能会先愣一下,然后给出的回答要么比较空泛,要么比较散,没办法简单明了地概括出来。显然,这个问题并没有唯一的标准答案,谁都可以谈论自己的理解,今天谈谈我对于好代码的理解。一句话概括衡量代码质量的唯一有效标准:WTF/min —— Robert C. MartinBob大叔对于好代码的理解非常有趣,对我也有很大的启发。我们编...
2019-08-29 19:51:33 136
转载 Innodb引擎下mysql自身配置优化
1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型...
2018-09-25 11:25:30 277
转载 my.cnf配置说明详解
此配置是老男孩生产线上使用的配置,在培训的时候,他给的,我在这里,对各参数添加了中文说明这配置已经优化的不错了,如果你的mysql没有什么特殊情况的话,可以直接使用该配置参数MYSQL服务器my.cnf配置文档详解硬件:内存16G[client]port = 3306socket = /data/3306/mysql.sock[mysql]no-auto-rehash[mysql...
2018-09-21 14:07:13 3718
转载 分布式之redis复习精讲【转】
复习要点?本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题正文1、为什么使用redis分析:博主觉得在项目中...
2018-09-18 09:57:17 135
转载 MySQL · 引擎特性 · Innodb change buffer介绍
前言在前面几期月报我们介绍了undo log、redo log以及InnoDB如何崩溃恢复来实现数据ACID的相关知识。本期我们介绍另外一种重要的数据变更日志,也就是InnoDB change buffer。 Change buffer的主要目的是将对二级索引的数据操作缓存下来,以此减少二级索引的随机IO,并达到操作合并的效果。在MySQL5.5之前的版本中,由于只支持缓存insert操作...
2018-09-17 11:38:23 333
转载 InnoDB 文件系统之文件物理结构
综述从上层的角度来看,InnoDB层的文件,除了redo日志外,基本上具有相当统一的结构,都是固定block大小,普遍使用的btree结构来管理数据。只是针对不同的block的应用场景会分配不同的页类型。通常默认情况下,每个block的大小为 UNIV_PAGE_SIZE,在不做任何配置时值为16kb,你还可以选择在安装实例时指定一个块的block大小。对于压缩表,可以在建表时指定block ...
2018-09-17 11:36:24 399
转载 数据库的树结构分析
首先来回答一个问题:为什么在磁盘中要使用b+树来进行文件存储呢?原因还是因为树的高度低得缘故,磁盘本身是一个顺序读写快,随机读写慢的系统,那么如果想高效的从磁盘中找到数据,势必需要满足一个最重要的条件:减少寻道次数。我们以平衡树为例进行对比,就会发现问题所在了: 先上个图 这是个平衡树,可以看到基本上一个元素下只有两个子叶节点 抽象的来看,树想要达成...
2018-09-17 10:22:49 475
转载 关于计算机的补码
基础知识了解:在计算机内,整数的长度是确定的,在字长为32位的计算机中,整数的长度就是32个二进制,这其中还包括了符号位(1表示正,0表示负)。这里面我们为了方便描述,就假设机器字长为8位。例如,十进制整数23,二进制真值表示为10111,其原码表示为 0001 0111。十进制整数-23,二进制真值表示为-10111,原码表示为 1001 0111。简而言之,源码就是最高位为符号位,其他位表示该...
2018-05-30 10:51:55 630
转载 负数的除法和右移的区别
A和B两个函数的结果是相同的,求M和N.[cpp] view plain copy#define M ? #define N ? int A(int x,int y) { int result = 0; result = x*M+y/N; return result; } int B(int x,int y) { int ...
2018-05-29 18:49:15 1344 1
转载 malloc、calloc、realloc的区别
(1)C语言跟内存分配方式<1>从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.<2>在栈上创建 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限.<3&...
2018-05-03 16:05:24 83
转载 C语言中static变量详解
C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果有重复定义的话编译器就会报错。伴随着不同源文件变量和函数之间的相互引用以及相互独立的关系,产生了extern和static关键字。 下面,详细分析一下static关键字在编写程序时有的三大类用法: 一,static全局变量 ...
2018-05-03 15:53:43 1935
转载 VirtualBox + CentOS 使用 NAT + Host-Only 方式联网
使用 Oracle VirtualBox 的版本是 5.0.12 r104815,系统镜像是 CentOS 6.6。 ① 安装完 CentOS 6.6 之后,关闭系统② 在 VirtualBox 主控制界面点击 【管理】--【全局设定】--【网络】--【添加新NAT网络】③ 在弹出的对话框中,设置【网络CIDR】为【192.168.100.0/24】,【确定】④ 在管理界面点击【设置】--【网络】...
2018-04-30 00:16:00 186
转载 详解PHP的执行原理和流程
简介 先看看下面这个过程: • 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的; • PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口); • PHP总共有三个模块:内核、Zend引擎、以及扩展层; • PHP内核用来处理请求、文件流、错误处理等相关操作; • Zend引擎(ZE)用以将源文件转换成机...
2018-04-19 17:19:31 127
转载 PHP代码的执行的过程
一、前言语言是人们进行沟通和交流的表达符号,每种语言都有专属于自己的符号,表达方式和规则。 就编程语言来说,它也是由特定的符号,特定的表达方式和规则组成。语言的作用是沟通,不管是自然语言,还是编程语言,它们的区别在于自然语言是人与人之间沟通的工具, 而编程语言是人与机器之间的沟通渠道。 就PHP语言来说,它也是一组符合一定规则的约定的指令。 在编程人员将自己的想法以PHP语言实现后,通过PHP...
2018-04-19 17:18:02 431
转载 gcc编译含math.h程序的奇怪现象(并非未添加-lm)
一个最简单的main.c程序 #include<math.h> #include<stdio.h> int main() { double a = 4; sqrt(a); return 0; } 如果使用gcc而非g++编译的话,直接使用命令: #gcc -o a main.c 编译会提示未找到sqrt的定义,这个是因为缺少了“-lm”:必须要显示的调...
2018-04-19 16:42:23 557
转载 GCC的gcc和g++区别
一般而言,在Linux下编译程序分为以下4个阶段:预处理:编译处理宏定义等宏命令(eg:#define)——生成后缀为“.i”的文件 编译:将预处理后的文件转换成汇编语言——生成后缀为“.s”的文件 汇编:由汇编生成的文件翻译为二进制目标文件——生成后缀为“.o”的文件 连接:多个目标文件(二进制)结合库函数等综合成的能直接独立执行的执行文件——生成后缀为“.out”的文件在Li...
2018-04-19 16:32:10 173
转载 Vundle的介绍及安装
背景Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim下的几个文件夹中,插件的安装与更新与删除都需要自己手动来,既麻烦费事,又可能出现错误。Vundle简介Vundle 是 Vim bundle 的简称,是一个 Vim 插件管理器. Vundle 允许你做…在.vimrc中跟踪和管理插件安装特定格式的插件(a.k.a. scripts/bundle)更新特定格式插件通过插件名称搜索Vi...
2018-04-03 18:18:55 1799
转载 SecureCRT 颜色设置
1. 终端有一个好的配色,不仅能保护自己的眼睛,也能给人一个好心情,本配色方案适合任意一种SSH客户端软件. 设置背景颜色Options => Sessions options => Terminal => Emulation,在 Terminal下拉列表下选择Linux,勾选 ANSI Color。 默认的 ANSI Color 的背景颜色是黑色,感觉看久了很不舒服,可以修改背...
2018-04-03 18:17:16 5582
转载 Redis的key和value大小限制
Redis的key和value大小限制 今天研究了下将java bean序列化到redis中存储起来,突然脑袋灵光一闪,对象大小会不会超过redis限制?不管怎么着,还是搞清楚一下比较好,所以就去问了下百度,果然没多少人关心这个问题,没找到比较合适的答案,所以决定还是去官网找吧。找到两句比较关键的话,截图如下。结论 redis的key和string类型value限制均为51...
2018-03-23 16:57:24 1578
转载 memcache 和 memcached 的区别分析
转载地址: https://blog.csdn.net/baidu_30000217/article/details/53586536前言:其实之前 LZ 有简单和学习和使用过 memcache ,但是也仅仅限于简单层面。然后最近要使用到 memcache,所以重新温习了一遍,在这里简单总结一下关于 memcache 和 memcached 的区别,大神路过就别踩了。。。区别分析:其实我们这里所说...
2018-03-22 17:24:43 184
转载 MemCache超详细解读(一致性hash)
转载地址:http://www.cnblogs.com/xrq730/p/4948707.htmlMemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对...
2018-03-22 17:05:30 222
转载 Redis 中 used_cpu_sys 和 used_cpu_user含义(转)
Redis 中 used_cpu_sys 和 used_cpu_user含义。在Redis的info命令输出结果中有如下四个指标,redis官网给出了下面一段解释,但是还是不明白什么意思。used_cpu_sys: System CPU consumed by the Redis serverused_cpu_user:User CPU consumed by the Redis serverus...
2018-03-14 16:07:43 2110
转载 HTTPS 原理详解
前言HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 近两年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力推行 HTTPS, 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是...
2018-03-13 17:10:48 164
转载 HTTP简介
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于19...
2018-03-13 17:09:00 93
转载 Linux之Sed工具的使用详解
Sed工具工作原理及特性1. sed是流编辑器,每一次读取一行到内存中,即称之为模式空间(pattern space)2. 默认不修改原文件,如果需要修改需加-i参数3. sed有模式空间及保持空间(hold sapce),默认打印模式空间中的内容到标准输出4. 默认情况下,模式空间中的内容打印一次,被模式匹配到的内容被命令动作处理过,一般情况下会再次打印 到标
2017-09-12 19:59:02 256
php+mysql+dreamver编程入门
2009-10-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人