果果🐔

果果的官网

Go内存逃逸分析

Go内存逃逸分析

Go是一门带有垃圾回收的现代语言,实现内存的主动申请和释放的管理 一.堆和栈 应用程序的内存载体,我们可以简单地将其分为堆和栈。 在Go中,栈的内存是由编译器自动进行分配和释放,栈区往往存储着函数参数、局部变量和调用函数帧,它们随着函数的创建而分配,函数的退出而销毁,一个goroutine对应一个栈 与栈不同的是,应用程序在运行时只会存在一个堆。狭隘地说,内存管理只是针对堆...

什么是mmap

什么是mmap

RocketMQ和Kafka 为什么快?什么是 mmap? 这一类的问题都逃不过的一个点就是零拷贝,虽然还有一些其他的原因,但是今天我们主要讲的就是零拷贝,也叫内存映射(Memory Mapped)。 传统IO 在开始谈零拷贝之前,首先要对传统的 IO 方式有一个概念。 基于传统的 IO 方式,底层实际上通过调用 read() 和 write() 来实现。 通过 read() 把数据...

浅入浅出RSA算法

RSA算法探秘

1 简单了解下 在了解RSA算法之前,先简单说明下密码学基本原理 1.1 对称加密算法 对称加密采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密 这种加密方法称为对称加密,也称为单密钥加密 1.1.1 对称加密的缺点 密钥如果被窃听,则会被破解 可以通过“穷举法”破解 1.2 非对称加密 非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密...

简单理解kafka原理

kafka初探

Kafka 是由Linkedin公司开发的,它是一个分布式的,支持多分区、多副本,基于Zookeeper的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 1 基本概念 消息:Kafka中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。 批次:为了提高效率, 消息会分批次写入Kafka,批次就代指的是一组消息。 主题:消息的种类...

Redis数据结构详解

高效的数据结构

高效的数据结构 学习 MySQL 的时候我知道为了提高检索速度使用了 B+ Tree 数据结构,所以 Redis 速度快也跟数据结构有关。 在 Redis 中,常用的 5 种数据类型和应用场景如下: String: 缓存、计数器、分布式锁等。 List: 链表、队列、微博关注人时间轴列表等。 Hash: 用户信息、Hash 表等。 Set: 去重、赞、踩、共同好友等。...

细品红黑树

红黑树详解

什么是红黑树 红黑树也是一种平衡二叉搜索树,也是一种平衡树,就是不会出现严重“瘸腿”的现象,出现了就会自动触发平衡操作来维持整棵树的平衡! 为了解决二叉搜索树的平衡问题出现了平衡树,而平衡树的两大代表可以说就是AVL树和红黑树,就目前这状况,红黑树更加吃香! 既然有了AVL树为什么还要有红黑树呢? AVL树的平衡是依据平衡因子,就是左右子树高度差不能大于1,这个规则其实过于严格,带来的...

Postgresql索引类型

PG索引初探

索引是增强数据库性能的利器,在检索某些特定行的时候效率会有很大提升,postgresql中索引类型丰富,每种索引有着不同的应用场景,下面简单介绍一下。 B-TREE索引 B-TREE是我们使用的最多的传统索引,这里就不需要再浪费笔墨来讨论了。 Hash索引 Hash索引是PostgreSQL上的一种特殊的索引,基于hash表,针对键值使用一个HASH函数,因此HASH索引只支持精确查找,...

RAID 独立磁盘冗余阵列

RAID

独立磁盘冗余阵列 RAID(redundant array of independent disks)技术 是将多块磁盘通过某种协议管理起来,使其共同对外提供服务,从而提升性能。 常见 RAID 有五种:RAID 0、RAID 1、RAID 10、RAID 5、RAID 6。 RAID 0 RAID 0 是将一个文件的数据分成 N 片,同时向 N 个磁盘写入,这样单个文件就可以存储...

X-ui可视化面板使用教程

x-ui

x-ui 我就不多做介绍了 1.执行一键脚本安装,就是这么简单 ## 一键脚本 bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh) 等待安装 待命令行出现如下提示时,表明安装成功 浏览器打开http://服务器ip地址:54321,登录面板(用户名和密码都是admi...

K8S配置学习

K8S

一,deployment Deployment为Pod和Replica Set下一代Replication Controller)提供声明式更新 1,配置示例 apiVersion: apps/v1 # 1.9.0 之前的版本使用 apps/v1beta2,可通过命令 kubectl api-versions 查看 kind: Deployment #指定...