8 nogos

尚未进行身份认证

I can do it

等级
TA的排名 1w+

什么是分布式锁?

单机多线程并发分布式集群环境下的多线程并发分布式锁的实现1Memcached分布式锁利用Memcached的add命令。此命令是原子性操作,只有在key不存在的情况下,才能add成功,也就意味着线程得到了锁。2Redis分布式锁和Memcached的方式类似,利用Redis的setnx命令。此命令同样是原子性操作,只有在key不存在的情况下,才能set成功。(setn...

2019-08-12 13:20:10

pprof (golang 性能监控与分析)

参考文章https://blog.wolfogre.com/posts/go-ppof-practice/https://xguox.me/go-profiling-optimizing.html/https://segmentfault.com/a/1190000016412013https://github.com/google/pprof示例代码packagemainimp...

2019-06-27 14:01:25

golang 深入理解map引用类型

理解指针什么是指针?指针是一种特殊的类型,指针变量的值是一个地址,该地址指向一个“指针类型”的变量指针声明var指针变量名*指针类型示例packagemainimport("fmt")funcmain(){varint_value=10varint_ptr=&int_valuefmt.Printf("The...

2019-05-28 13:07:35

TiDB 单机安装

官方地址:https://github.com/pingcap/docs-cn1下载压缩包#下载Tidb[root@admxj-core~]#wgethttp://download.pingcap.org/tidb-latest-linux-amd64.tar.gz#下载Tidb校验文件wgethttp://download.pingcap.org/tidb-latest...

2019-05-22 16:58:19

缓存更新的套路

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这个逻辑...

2019-05-10 21:10:27

go面向对象 vs c++面向对象

面向对象的四大特性抽象—数据抽象(属性)和过程抽象(方法)封装—限定对外方法,控制数据访问继承—数据共享、代码重用多态—派生对象就是父对象c++抽象和封装#include<iostream>usingnamespacestd;classrect{private:intlength;//长度intwidth;//宽度pu...

2019-04-11 17:28:06

Redis设计与实现——读书笔记

数据结构与对象SDS(SimpleDynamicString)structsdshdr{ intlen;//已使用字节数 intfree;//未使用字节数 charbuf[];//字节数组}特点:1、空间预分配策略,减少内存重分配次数(内存分配涉及系统调用)。2、获取长度O(1),通过属性记录字符串长度。3、杜绝缓冲区一次,通过API对SDS进行修改时,会先检查...

2019-03-28 23:28:31

select、poll、epoll、同步、异步、阻塞、非阻塞总结

IO多路复用之select、poll、epoll综述目前支持I/O多路复用的系统调用有select,pselect,poll,epoll,I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,pselect,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写...

2019-02-28 10:53:28

Unix环境高级编程——学习笔记

第七章进程环境引言main函数是如何被调用的?命令行参数是如何传送给执行程序的?典型的存储器布局是什么样式?如何分配另外的存储空间?进程如何使用环境变量?进程终止的不同方式?main函数main函数的原型是:intmain(intargc,char*argv[]);argc:命令行参数的数目。argv:指向各个参数的指针所构成的数组。进程终止(1)正常...

2019-02-28 10:52:13

kubernetes权威指南——入门概述

Kubernetes是什么  首先,它是一个全新的基于容器技术的分布式架构领先方案,简称K8s。K8s是Borg的一个开源版本,Borg是谷歌内部一个久负盛名的大规模集群管理系统,它基于容器技术,目的是实现资源管理的自动化以及跨数据中心的资源利用率最大化。  其次,如果我们的系统设计遵循了K8s的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以立刻从我们的视线中消...

2019-02-24 14:48:31

深入理解PHP内核——变量及数据类型

静态类型语言VS动态类型语言从类型的维度来看,编程语言可以分为三大类:静态类型语言,比如:C/Java等,在静态语言类型中,类型的检查是在编译期(compile-time)确定的,也就是说在运行时变量的类型是不会发生变化的。动态类型语言,比如:PHP,python等各种脚本语言,这类语言中的类型是在运行时确定的,那么也就是说类型通常可以在运行时发生变化无类型语言,,比如:汇编语言...

2019-02-22 16:55:01

深入理解PHP内核——PHP脚本执行的生命周期

用户代码的执行PHP代码运行示意图当用户代码输入给PHP内核去执行的时候,PHP内核会对PHP代码进行词法分析和语法分析,词法分析是把PHP代码分割成一个个的“单元”(TOKEN),语法分析则将这些“单元”转化为ZendEngine可执行的操作。然后PHP内部的ZendEngine对这些操作进行顺次的执行。ZendEngine是PHP内核的核心部分,负责最终操作的执形和结果的返...

2019-02-22 14:50:48

Linux 下 Gin 安装

Go环境搭建Go环境搭建参看:https://blog.csdn.net/sunxianghuang/article/details/87808103下载安装Gin框架$goget-ugithub.com/gin-gonic/ginGin框架使用示例GinTest.go源码packagemainimport"github.com/gin-gonic/gin"fu...

2019-02-20 18:02:30

Linux下Go环境安装

下载源码go1.10.3.linux-amd64.tar.gzhttps://dl.google.com/go/go1.10.3.linux-amd64.tar.gz解压#cd/usr/local/#tar-zxvfgo1.10.3.linux-amd64.tar.gz添加环境变量#vim/etc/profile//在最后一行添加exportGOROOT=...

2019-02-20 17:16:53

以独立模式(本机)模式安装Hadoop

安装并检查Java环境JKD下载https://download.csdn.net/download/qq_36698956/10731785安装JDKcd/usr/localmkdirjavacd./java//上传文件unzipjdk-8u121-linux-x64.zip设置JAVA_HOMEvi/etc/profileexportJAVA...

2019-01-31 13:52:53

Hadoop概述

Hadoop和关系型数据库为什么不能用配有大量硬盘的数据库来进行大规模数据分析?我们为什么需要Hadoop?这两个问题的答案来自于计算机硬盘的另一个发展趋势:寻址时间的提升远远不敌传输速率的提升。寻址是将磁头移动到特定磁盘位置进行读/写操作的过程,它是导致磁盘操作延迟的主要原因,而传输速率取决于磁盘的带宽(IOPS,I/OPerSecond)。如果数据访问模式中包含大量的磁盘寻址,那么...

2019-01-31 10:47:20

Python Greenlet 入门

What’sgreenletgreenlet也叫微线程、协程,它的调度是由程序明确控制的,所以执行流程是固定的、明确的。而线程的调度完全交由操作系统,执行顺序无法预料。同时,协程之间切换的代价远比线程小。此外,greenlet是通过C扩展实现的。greenlet的核心类#创建一个新的协程对象。run是一个可调用对象,parent是父协程,默认是当前协程。greenlet(run=Non...

2019-01-30 18:43:37

百度搜索引擎工作原理

  关于百度以及其它搜索引擎的工作原理,其实大家已经讨论过很多,但随着科技的进步、互联网业的发展,各家搜索引擎都发生着巨大的变化,并且这些变化都是飞快的。我们设计这个章节的目的,除了从官方的角度发出一些声音、纠正一些之前的误读外,还希望通过不断更新内容,与百度搜索引擎发展保持同步,给各位站长带来最新的、与百度高相关的信息。本章主要内容分为四个章节,分别为:抓取建库;检索排序;外部投票;结果展现。...

2019-01-13 16:52:00

Nginx基础架构

Web服务器设计中的关键约束  Nginx是一个功能堪比Apache的Web服务器。然而,在设计时,为了使其能够适应互联网用户的高速增长及其带来的多样化需求,在基本的功能需求之外,还有许多设计约束。  Nginx作为Web服务器受制于Web传输协议本身的约束,另外,下面将说明的7个关注点也是Nginx架构设计中的关键约束。1性能  性能是Nginx的根本,如果性能无法超越Apache,那...

2019-01-13 12:36:06

网站SEO优化知识梳理

https://zy116494718.iteye.com/blog/1685127

2019-01-07 15:36:31

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。