PHP 生成简短唯一ID开源库 Sqids

Sqids 是一个开源库,可以让您从数字中生成唯一的ID。它有利于缩短链接,快速生成URL安全的ID,并将其解码为数字,以更快地查找数据库。https://github.com/sqids/sqids-php

注:不适用于敏感数据。
生成的ID对于输入和字母表是唯一的。请记住,默认字母表包含大写和小写字母,因此默认ID是区分大小写的。

限制:

  • Sqids无法编码负数。
  • 最小字母表长度为3个字符。
  • 字母表不能包含任何多字节字符。
  • Sqids不能生成特定长度的ID,只能生成至少特定长度的ID。最小长度参数范围介于0和255之间。
  • Sqids可以尝试重新生成ID,直到字母表长度减一。
# 安装
composer require sqids/sqids

# 示例
$sqids = new Sqids(); #指定最小长度 new Sqids(minLength: 10) 自定义字母表:new Sqids(alphabet: 'FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE') 防止特定单词出现在自动生成的ID中的任何位置:new Sqids(blocklist: ['86Rf07'])
$id = $sqids->encode([1, 2, 3]); // "86Rf07"
$numbers = $sqids->decode($id); // [1, 2, 3]

高并发架构设计(三大利器:缓存、限流和降级)

软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。

高并发背景

互联网行业迅速发展,用户量剧增,系统面临巨大的并发请求压力。

软件系统有三个追求:高性能、高并发、高可用,俗称三高。三者既有区别也有联系,门门道道很多,全面讨论需要三天三夜,本篇讨论高并发。

高并发对系统的挑战

性能下降、资源竞争和稳定性问题等。

- 阅读剩余部分 -

API 接口到底要不要添加签名机制?

在当今的数字化世界中,API(应用程序编程接口)是现代软件架构中不可或缺的一部分,使得不同的系统和服务能够相互通信和集成。在 API 接口的设计与开发中,安全性始终是一个不容忽视的问题。API 签名机制是一种简单有效的安全措施,用于请求的身份验证和数据完整性保护。本文将深入探讨 API 签名的必要性、原理、实现方式以及优缺点,为开发者提供全面的参考和指导。

什么是 API 签名机制

API 签名机制是用于确认消息的来源和保护数据完整性的一种安全措施。签名机制通常涉及到以下几个步骤:

- 阅读剩余部分 -

git log详解

git log 功能详解

命令模式:git log [options] [<file> <commit> <tag>...]

如果不加其它选项,默认情况下,这个命令按提交的先后顺序由近到远显示提交日志,包括每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明等信息。

如果加文件名作为参数,那么就会只查看跟某个文件有关的提交历史;

如果指定某次提交的校验和或者标签名作为参数,那么就会查看指定提交或标签之前的提交历史。

命令选项如下图:

- 阅读剩余部分 -

postgres删除指定数据库报错有其他session正在连接的解决办法

瀚高等基于postgres的数据库在删除数据库时常见报错信息:

dropdb -h localhost -p 5432 -U postgres sensen

dropdb: error: database removal failed: ERROR: database "sensen" is being accessed by other users
DETAIL: There is 1 other session using the database.

解决方法:
切换到psql下,执行:SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='你的数据库名字' AND pid<>pg_backend_pid();
退出psql再次删除即可。

CentOS查看已安装软件包

CentOS查看已安装软件包的方法

1、使用rpm命令
rpm是CentOS系统中的包管理工具,我们可以使用 rpm -qa rpm -q vim来查询已安装的软件包。

2、使用yum命令
yum是CentOS系统中另一个包管理工具,它可以通过网络自动下载并安装软件包。我们可以使用 yum list installed yum list installed vim 来查询已安装的软件包。

3、使用dnf命令
dnf是CentOS 8及以上版本中默认的包管理工具,它是yum的升级版,可以提供更好的性能和更好的用户体验。我们可以使用 dnf list installed dnf list installed vim 来查询已安装的软件包。