Engineering Notes

孟斌的小站

技术博客与学习记录

共 612 篇文章 标签与分类索引已启用

Golang slice简介

简介

Go语言中的切片(slice)是一种灵活的数据结构,它构建在数组之上并提供了方便的方式来操作数组的一部分。切片的底层实现涉及到数组和一些元数据。以下是Golang切片的底层实现的详细介绍:

go
继续阅读

make vs. new

在Go编程中,makenew 是两个常用的内置函数,用于创建和初始化不同类型的数据结构。下面将简单介绍这两个函数以及它们的用法。

go
继续阅读

常见国密算法简介

SM2

SM2 国密SM2算法是中国国家密码管理局(CNCA)发布的一种非对称加密算法。它采用椭圆曲线密码体系(Elliptic Curve Cryptography,ECC)进行密钥交换、数字签名和公钥加密等操作。以下是SM2算法的主要特点和步骤:

继续阅读

MySQL存储引擎简介

常用MySQL存储引擎对比

存储引擎 描述 事务支持 锁机制 ACID 支持 索引类型 适用场景
InnoDB 默认的存储引擎,支持事务和行级锁,具有 ACID 兼容性。 行级锁 B+ 树 事务处理、高并发、数据完整性要求高的应用
MyISAM 不支持事务,表级锁,不具备 ACID 特性。 表级锁 B 树 读密集型、插入和查询频繁的应用
MEMORY 数据存储在内存中,速度快,但不持久化。 无锁 哈希 临时表、缓存、需要高性能读写的临时数据
NDB Cluster 用于 MySQL Cluster,支持分布式存储和高可用性。 行级锁 哈希 分布式数据库、高可用性、实时数据需求
TokuDB 高性能存储引擎,压缩数据,适用于大数据量的 OLAP 场景。 事务锁 B+ 树 数据仓库、大数据量分析、高写入负载
ARCHIVE 高度压缩存储引擎,只支持 INSERT 和 SELECT 操作。 表级锁 数据归档、日志存储

这个表格列出了各种 MySQL 存储引擎的主要特点和适用场景。请注意,选择存储引擎应该根据应用程序的需求来确定,因为每种引擎都有其优点和局限性。

继续阅读

常见密码学算法简介

1. 常见对称加解密算法

对称加密算法是一种加密算法,使用相同的密钥来加密和解密数据。这些算法在保护数据安全性方面起着重要作用。下面是一些常用的对称加密算法的介绍:

继续阅读

Redis中的缓存雪崩、缓存击穿、缓存穿透问题

1. 什么是缓存雪崩

当我们提到缓存系统中的问题,缓存雪崩是一个经常被讨论的话题。缓存雪崩是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机。尤其在高并发的系统中,这种情况会导致连锁反应,整个系统可能会崩溃。

继续阅读

Redis 互斥锁使用

Redis的互斥锁是一种并发控制机制,用于确保在分布式环境中只有一个客户端能够访问共享资源,以防止竞争条件和数据不一致性。互斥锁是通过Redis提供的原子性操作来实现的,通常使用SETNX(SET if Not eXists)命令或者SET命令结合过期时间来实现。以下是关于Redis互斥锁的详细介绍:

继续阅读

零知识证明简介

零知识证明(Zero-Knowledge Proof,ZKP)是一种密码学概念,用于证明某个主张是真实的,同时不需要泄漏关于该主张的任何额外信息。在零知识证明中,证明者(Prover)试图向验证者(Verifier)证明某一断言的真实性,而验证者只会知道这个断言是真或假,但不会得到有关证明的任何其他信息。

继续阅读

PKI体系简介

PKI系统简介

PKI(Public Key Infrastructure,公钥基础设施)是一种密码学框架,用于安全地管理数字证书、公钥和私钥,以确保通信和数据的机密性、完整性和身份验证。PKI建立在公钥密码学的基础上,通过数字证书颁发机构(CA)和相关组件来实现安全通信和身份验证。以下是对PKI体系的详细介绍:

继续阅读