位置: 编程技术 - 正文
推荐整理分享PHP生成唯一ID之SnowFlake算法(php uniqueid),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php实现唯一登录,php生成guid,php生成guid,php 生成uuid,php生成唯一数字id,php生成唯一标识,php生成唯一标识,php生成唯一标识,内容如对您有帮助,希望把文章链接给更多的朋友!
前言:最近需要做一套CMS系统,由于功能比较单一,而且要求灵活,所以放弃了WP这样的成熟系统,自己做一套相对简单一点的。文章的详情页URL想要做成url伪静态的格式即xxx.html 其中xxx考虑过直接用自增主键,但是感觉这样有点暴露文章数量,有同学说可以把初始值设高一点,可是还是可以通过ID差算出一段时间内的文章数量,所以需要一种可以生成唯一ID的算法。
考虑过的方法有
直接用时间戳,或者以此衍生的一系列方法 Mysql自带的uuid以上两种方法都可以查到就不多做解释了
最终选择了Twitter的SnowFlake算法
这个算法的好处很简单可以在每秒产生约W个不同的位数字ID(进制)
原理很简单
ID由bit组成
其中 第一个bit空缺
bit用于存放毫秒级时间戳
bit用于存放机器id
bit用于存放自增ID
除了最高位bit标记为不可用以外,其余三组bit占位均可浮动,看具体的业务需求而定。默认情况下bit的时间戳可以支持该算法使用到年,bit的工作机器id可以支持台机器,序列号支持1毫秒产生个自增序列id。下面是PHP源码
调用方法如下
这里我做了改良 如果机器ID传0 就会去掉这bit 因为有些时候我们可能用不到这么多ID
php格式化时间戳 CMS中一般显示时间比较新的文章需要显示几分钟前,几天前这样,但是一般数据库里面记录的都是时间戳(至少我习惯这样),所以就需要一个转化的
php生成二维码图片方法汇总 第一种方法:1,第一种方法:利用使用最广泛,最方便的Googleapi技术实现;2,php//封装生成二维码图片的函数(方法)/*利用googleapi生成二维码图片$content
详解PHP数据压缩、加解密(pack, unpack) 网络通信、文件存储中经常需要交换数据,为了减少网络通信流量、文件存储大小以及加密通信规则,经常需要对数据进行双向加解密以保证数据的安
标签: php uniqueid
本文链接地址:https://www.jiuchutong.com/biancheng/297056.html 转载请保留说明!友情链接: 武汉网站建设