240 发简信
IP属地:北京
  • Go笔记-Chap10 反射

    10.1 类型 反射让我们能在运行期探知对象的类型信息和内存结构,从而弥补静态语言在动态行为上的不足。反射还是实现元编程的重要手段。 方法Elem返回指针、数组、切片、字典或...

  • Go笔记-Chap9 包结构

    9.1 工作空间 src bin go install 结果 pkg go get 结果 环境变量 编译器按照GOPATH设置的路径搜索目标,比当前工作空间优先...

  • Go笔记-Chap8 并发

    8.1 并发的含义 并发:逻辑上具备同时处理多个任务的能力 并行: 物理上在同一时刻执行多个并发任务 多线程或多进程是并行的基本条件,但单线程也可用协程做到并发,在单个线程上...

  • Go笔记-Chap7 接口

    7.1 定义 接口代表一种调用契约,是多个方法声明的集合。 相当于一种协议,遵守事先约定的规则,无需知道对方具体的身份进行协作。 解除了类型依赖,减少用户可视方法,屏蔽细节 ...

  • Go笔记-Chap5 数据

    5.1 字符串 不可变字节序列,本身是个复合结构 默认值是“”,空串 使用“ ' ”定义不做转义处理的原始字符串 支持操作符 允许索引号访问,但不能获取元素地址 切片内部,依...

  • Go笔记-Chap4 函数

    4.1 定义 无须前置声明 不支持命名嵌套定义 不支持同名重载 不支持默认参数 支持不定长变参 支持多返回值 支持命名返回值 支持匿名函数和闭包 只能判断nil,不能比较 函...

  • Go笔记-Chap3 表达式

    3.1 保留字 仅25个keyword 3.2 运算符 优先级:一元>二元二元运算符:除位移操作,操作数类型必须相同,若其一无显式声明,会自动转型 位运算符 XOR:按位异或...

  • Go笔记-Chap2 类型

    2.1 变量 变量是一段或多段用来存储数据的内存。在go中,关键字是var,类型被放在变量名后,内存分配时确保自动初始化为二进制零值。且编译器能自动推断。 简短模式 限制: ...

  • 120
    「Git」合并多个 Commit

    在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 comm...

  • 120
    系统监测工具

    1. tcmdump 2. lsof (list open file) 列出当前系统打开的文件描述符 i :显示socket文件描述符lsof.jpg 3. nc netca...

  • 120
    高性能服务器程序框架

    同步I/O模型要求用户代码自行执行I/O操作(将数据从内核缓冲区读入用户缓冲区,或将数据从用户缓冲区写入内核缓冲区),而异步I/O则由内核来执行I/O操作。同步I/O向应用程...

  • 120
    I/O模型

    I/O模型: 阻塞、非阻塞、I/O复用、同步、异步 I/O模型不论在实际使用还是准备笔试面试中都是重要的内容,参考Unix网络编程进行总结如下。 明确I/O考察的对象和流程 ...

  • 120
    第11章 缓存设计

    主要内容如下: 缓存的收益和成本分析 缓存更新策略的选择和使用场景 缓存粒度控制方法 穿透问题优化 无底洞问题优化 雪崩问题优化 热点key重建优化 1. 缓存的收益和成本 ...

  • 120
    第10章 集群

    1. 数据分布 1.1 数据分布理论 哈希分区:离散度好,数据分布业务无关 顺序分区:离散度易倾斜,数据分布业务相关,可顺序访问 节点取余分区:hash(key)%N,当节点...

  • 120
    第9章 哨兵

    Redis Sentinel 哨兵架构是高可用方案。 1. 基本概念 1.1 主从复制问题 主从复制模式的作用: 从节点作为后备,保证数据尽量不丢失 从节点扩展主节点的读能力...

  • 120
    第8章 理解内存

    理解Redis内存消耗,管理和优化。 1. 内存消耗 1.1 内存使用统计 通过info memory命令获取内存相关指标,重点指标: 1.2 内存消耗划分 对象内存:存储用...

  • 第7章 Redis的噩梦:阻塞

    Redis的单线程架构决定了其不能允许阻塞。 1. 发现阻塞 线上应用最先感知到阻塞,客户端会抛出异常,应用方应当收集异常。并保存异常的信息(哪个Redis节点,ip, po...