推荐一款id生成器: Hashids
唯一 id 生成的方式有很多种,比较常见的有以下几种方式:
语言自带功能,如 Java 中的 UUID,常用于后端
第三方工具提供,如 npm 中的 nanoid,常用于前端
Twitter 开源的 Snowflake 算法,常用于后端
美团开源的 Leaf 算法,常用于后端
...
本文再推荐一款唯一 id 生成器:Hashids。它具有以下特性:
只能把指定的整数(且不支持负数)转换为唯一 id,具有一定的局限性。
不会发生冲突。因此我们无需考虑冲突碰撞的解决方案。
可自定义字符集和盐。
生成的结果无序,避免被遍历。
生成的结果自动规避脏话单词,如 shit 之类。
可以反向解析,这对于某些场景尤为合适(比如短链接系统,可以根据生成的短链接 id 获取原始 id,再从数据库中根据原始 id 拿到对应的长链接)。
可见,该生成器具有一定的局限性,但提供了较为丰富的功能,在特定的场景下是非常好用的。
另外,对应源码短小精悍,且提供了多种版本的实现,包括但不限于JavaScript、Java、C等语言,有兴趣的同学可以到官网 hashids.org 学习使用。
发挥想象力,看看你有什么场景可以使用它呢?
推荐一款id生成器: Hashids的更多相关文章
- 分布式ID生成器的解决方案总结
在互联网的业务系统中,涉及到各种各样的ID,如在支付系统中就会有支付ID.退款ID等.那一般生成ID都有哪些解决方案呢?特别是在复杂的分布式系统业务场景中,我们应该采用哪种适合自己的解决方案是十分重要 ...
- 常用的分布式ID生成器
为何需要分布式ID生成器 **本人博客网站 **IT小神 www.itxiaoshen.com **拿我们系统常用Mysql数据库来说,在之前的单体架构基本是单库结构,每个业务表的ID一般从1增,通过 ...
- 分布式全局ID生成器原理剖析及非常齐全开源方案应用示例
为何需要分布式ID生成器 **本人博客网站 **IT小神 www.itxiaoshen.com **拿我们系统常用Mysql数据库来说,在之前的单体架构基本是单库结构,每个业务表的ID一般从1增,通过 ...
- 推荐15款最好的 Twitter Bootstrap 开发工具
Twitter Bootstrap 自从2011年最初发布到网上后,迅速成为 Web 领域最流行的响应式前端开发框架之一,是网页设计的优秀实践.Twitter Bootstrap 框架包含了众多的预定 ...
- 向 Web 开发人员推荐35款 JavaScript 图形图表库
图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等.可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web 应用和项目的可靠性. 在这篇文章中,我们收集了3 ...
- 推荐一款不错的dialog小工具:artDialog
推荐一款不错的dialog小工具, 地址:http://www.planeart.cn/demo/artDialog/_doc/labs.html 相关介绍例如以下: artDialog是一个基于ja ...
- 强烈推荐一款CSS导航菜单
强烈推荐一款CSS导航菜单,用到政府学校类网站上超级不错,有点类似站长网菜单的味道,只不过颜色不一样而已,这种菜单还不是真正意义上的“下拉”菜单,应该叫滑出菜单吧?反正比较不错,不多说了. <! ...
- 推荐一款JavaScript日历控件:kimsoft-jscalendar
一.什么是 kimsoft-jscalendar 一个简洁的avaScript日历控件,可在Java Web项目,.NET Web 项目中使用 二.kimsoft-jscalendar 有什么 ...
- 推荐一款接口 API 设计神器!
今天栈长给大家推荐一款接口 API 设计神器,传说中的,牛逼哄洪的 Swagger,它到底是什么?今天为大家揭开谜底! Swagger是什么? 官网:https://swagger.io/ Swagg ...
- 推荐一款MongoDB的客户端管理工具--nosqlbooster
今天给大家推荐一款MongoDB的客户端工具--nosqlbooster,这个也是我工作中一直使用的连接管理MongoDB的工具.这个工具还有个曾用名--mongobooster.nosqlboost ...
随机推荐
- java进阶(30)--Hashtable集合与Properties集合
一.Hashtable简介 1.HashMap与Hashtable区别 Hashtable的key与value均不能为空,而HashMap均可以 2.Hashtable方法带有Synchronized ...
- java基础-idea的使用-day07
目录 1. idea的获取 2. 已经安装的idea 如何卸载 3. idea的安装与破解 3. 设置 4. 写代码常用快捷建的使用 1. idea的获取 链接:https://pan.baidu.c ...
- 简单剖析Hashmap
剖析 Java Hashmap 源码 在 Java 的集合框架中,HashMap 是一颗璀璨的明珠.通过深入挖掘其源码,我们将揭开 HashMap 的神秘面纱,理解其底层原理.扩容机制和数据结构. 1 ...
- MongoDB 根据多个条件批量修改
转载请注明出处: MongoDB 根据单个条件修改的sql 如下: db.collection_name.update({"userid":"1111111"} ...
- Linux系统下安装JDK8和Maven3.8.5
一.下载JDK8Linux版本 官网下载太慢了,小编这里为大家下载好了: 链接:百度网盘地址 提取码:ov24 二.下载Maven maven3.8.5下载链接 三.使用xftp上传到linux上 四 ...
- [转帖]GC日志解读,这次别再说看不懂GC日志了
https://juejin.cn/post/7029130033268555807 测试环境:机器内存16G,JDK 8,12核CPU 测试用例,从网上找的示例,视情况修改即可: java ...
- [转帖]prometheus和node_exporter中的磁盘监控
https://www.ipcpu.com/2021/04/prometheus-node_exporter/ prometheus和node_exporter中的磁盘监控.md 对于磁盘问题,我们主 ...
- [转帖]Jmeter之JDBC Request使用方法(oracle)
https://zhuanlan.zhihu.com/p/121747788 JDBC Request: 这个sampler可以向数据库发送一个jdbc请求(sql语句),它经常需要和JDBC Con ...
- [转帖]Sosreport:收集系统日志和诊断信息的工具
https://zhuanlan.zhihu.com/p/39259107 如果你是 RHEL 管理员,你可能肯定听说过 Sosreport :一个可扩展.可移植的支持数据收集工具.它是一个从类 Un ...
- [转帖]linux中top命令显示不全怎么解决
https://www.yisu.com/zixun/697775.html 这篇"linux中top命令显示不全怎么解决"文章的知识点大部分人都不太理解,所以小编给大家总结了以下 ...