240 发简信
IP属地:云南
  • 120
    Go-linq 使用

    性能测试 Case1:求数据集中某个字段的最大值 benchmark 结果如下 从上图可以看出,常规方法的速度是 linq 的110倍左右,linq进行了大量的内存分配操作,...

  • Linux进程管理:supervisor和nohup原理及使用

    原理 守护进程(daemon) 守护进程是一类在后台运行的特殊进程,用于执行特定的系统任务。他独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。Linux系统的...

  • 120
    一致性哈希算法

    传统哈希算法的局限性 在分布式系统中,通常使用多个节点来保存数据,以提高并发能力和容量,那么如果决定数据保存到哪个节点上呢?一般的做法是通过一个哈希函数对数据key进行计算,...

  • 数据库和缓存数据一致性问题

    业务使用Redis做缓存,当有数据更新时,如何保证缓存及时更新 读数据流程 请求到来,业务代码会先查Redis,查不到再去查DB,并将结果写入Redis 写数据方案 1. 先...

  • 120
    Redis:集群方案

    单实例往往不能满足生产环境的需求,需要引入Redis集群,比较常见的Redis集群方案有主从复制、哨兵模式、官网的Redis Cluster,另外还有一些Proxy模式,各大...

  • Redis:热点key解决方案

    什么是热点key? 对于web应用来说,用户消费的数据远远大于生产的数据,大多人使用都只是进行浏览,少数的人才会进行评论。对于web服务来说,某些热门的内容,读请求的量级可能...

  • 120
    Go实践:Goroutine(go协程)调度原理及应用

    什么是协程? 进程和线程 一个应用程序时运行在操作系统上的一个进程。进程是一个运行在自己独立内存空间的独立执行体,是操作系统进行资源分配的最小单位。一个进程则有一个或多个线程...

  • 120
    限流算法

    为什么要限流? 由于Web服务无法控制调用方的行为,当遇到请求并发量超过系统的容量阈值,会导致服务器资源耗尽从而导致服务异常或宕机,而且某个服务的请求量突增还会影响到上游的服...

  • 120
    分布式全局唯一ID方案有哪些?

    全局唯一ID要求 分布式系统中,我们会对一些数据量大的业务进行拆分,如用户表、订单表,当数据量巨大导致数据库性能下降时,通常会进行分库分表,无法利用MySQL的自增ID,那么...

  • 120
    Linux系统I/O模型及select、poll、epoll原理和应用

    基本概念说明 理解Linux的IO模型之前,首先要了解一些基本概念,才能理解这些IO模型设计的依据 用户空间和内核空间 操作系统使用虚拟内存来映射物理内存,对于32位的操作系...

  • 120
    TCP是如何实现可靠传输的?

    在计算机网络的经典五层协议中,TCP属于运输层,实现了进程间的通信,保证了数据的可靠传输,属于计算机网络协议族中最重要的协议之一,那么TCP是如何实现可靠数据传输的呢? 底层...

  • MySQL:排序(order by)

    MySQL是如何进行排序的? 假设有一个表t结构如下图所示: id为主键,type上建有索引,那么如果要查类型为1,val最小的1000行,那么SQL语句如下:SELECT ...

  • 120
    HTTPS原理

    Web应用存在HTTP和HTTPS两种通信方式,HTTP默认端口80,数据以明文传输,HTTPS默认端口443,数据加密传输。 HTTPS协议 HTTPS实际上并不是一种新的...

  • 120
    Session和Cookie

    我们知道HTTP协议是无状态的,那么在Web开发中如何做好用户的整个浏览过程的控制,最经典的解决方案就是使用Cookie和Session。Cookie是客户端的机制,把用户数...

  • 120
    什么是WebSocket?

    基本概念 WebSocket是一种网络通信协议,是HTML5新增的特性,实现了基于浏览器的远程socket,使浏览器和服务器可以进行全双工通信,大部分浏览器都对此做了支持。W...

  • 120
    MySQL:脏页刷盘

    什么是脏页? InnoDB在处理更新语句时,先写内存再写redo log,并不会立即将数据页的更新落地到磁盘(WAL机制),这就会产生升内存数据页和磁盘数据页的数据不一致的情...

  • 120
    MySQL:索引

    索引的底层实现 InnoDB存储引擎数据结构使用B+树 B+树 B+数据的基本结构如下图 为什么选用B+树 MySQL为什么要选B+树作为存储结构呢,与B树相比有哪些优点? ...

  • Go实践:Socket编程

    Socket如何通信 在网络中要唯一确定一个进程需要用一个三元组(Protocol,IP,Port),IP地址唯一确定一台主机,再通过协议和端口唯一确定一个进程,这里也可以看...

  • 120
    Go实践:基于Thrift框架的Go-RPC简单示例

    Thrift架构简介 Thrift自顶向下可分为四层 Server(single-threaded, event-driven)服务器进程调度 Processor(compi...

  • nginx基础篇:基本架构和基础概念

    nginx是一个开源的高性能web服务器或反向代理服务器。 基本架构 多进程模型 nginx启动后会产生一个master进程和多个worker进程。master进程主要来管理...