JavaScript 中 ,reduce 函数的用法
reduce() 是 JavaScript 中数组的一个高阶函数,用于将数组中的所有元素通过某种方式汇总成一个单一的值。它的基本用法是通过提供一个回调函数,回调函数接收四个参数:accumulator(累积器)、currentValue(当前值)、currentIndex(当前索…
一致性哈希算法
一致性哈希(Consistent Hashing)是一种用于分布式系统中解决数据分布和负载均衡的问题的哈希算法。它特别适用于动态节点(如服务器)加入或退出时,能够最小化数据的重分布,从而提高系统的稳定性和扩展性。 一致性哈希的基本原理:
虚拟节点(Virtual Nodes):…
sync.Mutex 和 sync.RWMutex 的区别
在 Go 语言中,sync.Mutex 和 sync.RWMutex 都是用于在并发编程中同步访问共享资源的互斥锁,但它们的使用场景和工作原理有所不同。 具体区别如下:
1. sync.Mutex(互斥锁)
sync.Mutex 是最基本的锁机制,它确保同一时刻只有一个 goro…
go test 运行当前项目下的所有测试
运行当前目录及其所有子目录下的测试: Copy
go test ./...
运行指定目录及其所有子目录下的测试:
Copy
go test foo/
运行指定前缀的测试:
Copy
go test bar...
Foobar 是计算机程序领域里的术语…
解决 Windows 系统下 go-sqlite3 requires cgo to work
前言 在 Windows 系统下,使用 go-sqlite3 连接 sqlite 数据库时,项目运行报错,错误信息如下:
Copy
Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work…
Follow Feed Claim
To claim this feed as your own, you need to verify ownership.
There are three ways to choose from, you can choose one of them to verify.
Java 中的访问修饰符
在 Java 中,public、private 和 protected 是访问修饰符,用于控制类、方法和变量的可访问性。 public
任何地方都可以访问
可以在任何其他类中创建对该成员的引用。
Copy
public class MyClass {
public…
使用免密 GPG 密钥
如果你的用例允许你不需要每次都输入密码,你可以删除 GPG 密钥的密码。但这会大大降低安全性,因此请谨慎使用。 通过以下命令删除 GPG 密钥的密码:
Copy
gpg --edit-key <你的 GPG 密钥 ID>
passwd
然后按照提示进行操作,删除密钥的密码。
Redis 缓存雪崩、缓存击穿、缓存穿透的解决方案
缓存雪崩 缓存雪崩:当大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大量的用户请求,无法在 Redis 中处理,那么这些请求将会直接访问数据库,从而导致数据库压力骤增,严重的话会导致数据库崩溃宕机,进而导致整个系统崩溃。
解决方案:
避免为大量的…
Java 实现单例模式
单例模式确保一个类只有一个实例,并提供一个全局访问点。 在 Java 中,实现单例模式有如下几种常见的方法。
饿汉式
饿汉式在类加载时就创建实例,线程安全但可能会浪费内存。
Copy
public class Singleton {
private static…
面向对象编程中的六大原则
单一职责原则(SRP):一个类应该只有一个引起它变化的原因,即一个类应该只负责一项职责。例如,一个 Person 类,它应该只负责和 Person 相关的工作,而不应该去处理其他无关的工作。 开放封闭原则(OCP):软件实体应该对扩展开放,对修改封闭。例如,定义一个图形类…
导致 MySQL 索引失效的常见场景
explain 可以用来分析 SQL 语句,具体用法如下: 只需在要执行的 SQL 语句前面添加 explain 即可。
各个字段的含义如下:
id :选择标识符,id 越大优先级越高,越先被执行;
select_type : 表示查询的类型;
table :输出结果集的表;…
将 NCM 文件转换为 MP3 文件
https://github.com/magic-akari/ncmc 首先,配置好 Rust 开发环境 ,然后,安装 ncmc。
Copy
cargo install ncmc
利用如下脚本,完成对指定目录下 ncm 文件的批量转换:
Copy
Get-ChildItem…
Windows 系统设置 GPG-Agent 缓存
设置 GPG-Agent 缓存,可以避免每次都输入密码。 在 Windows 的家目录下,找到 .gnupg/gpg-agent.conf 文件。
如果没有的话,就创建一个。
编辑 gpg-agent.conf 文件,添加如下内容
Copy
default-cache-ttl…
Arc 常用快捷键总结
总结一下,自己常用的 Arc 快捷键 新标签页:Control + T
新窗口:Control + N
关闭当前标签页:Control + W
显示 / 隐藏侧边栏:Control + S
最近标签页:Control + Tab
历史前进:Alt + ->
历史后退:Alt…
jsDelivr 刷新缓存
缓存刷新 把原来的访问链接:
Copy
https://cdn.jsdelivr.net/gh/lyh-workshops/back2top/dist/back2top.min.js
改为:
Copy
https://purge.jsdelivr.net/gh/lyh…
Docker 安装 PostgreSQL
拉取镜像 Copy
docker pull postgres:latest
运行容器
Copy
docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres
用户名…
VSCode 使用 JetBrains Mono 字体
下载字体 JetBrains Mono – the free and open-source typeface for developers
https://github.com/JetBrains/JetBrainsMono
下载地址:https://github.com…