生成全局唯一ID
2024-08-20 12:27:28
在实际业务处理中,有时需要生成全局唯一ID来区别同类型的不同事物,介绍一下几种方式及其C++实现
//获取全局唯一ID
//server_id为服务的id,因当同一个服务部署在多个服务器上时,需要区别
unsigned long long GetUniqueID(unsigned int server_id)
{
static unsigned long long seq_id = ;
unsigned long long seq = seq_msg_id++ ;
seq = (seq<<);
seq = (seq>>);
unsigned long long tag = ((unsigned long long)server_id<<);
seq = (seq | tag) ;
return seq ;
} /**
获取全局唯一ID,且ID为奇数
*/
unsigned long long GetOddID(unsigned int server_id)
{
unsigned long long id = GetUniqueID(server_id);
while (true)
{
if ((id & 0x01) == 0x01)
{
return id;
}
else
{
id = GetUniqueID(server_id);
}
}
} //利用MD5库提供的64位哈希函数,来将字符串生成相应的hash值
//从而可得到经md5转化后的报文摘要 //数据库的UUID
最新文章
- 我这么玩Web Api(二):数据验证,全局数据验证与单元测试
- 用bootstrap实现多张图片手动轮回
- Android打造属于自己的数据库操作类。
- 获取IMap上绘制的Element的区域范围
- Web自动化测试 Selenium 2/3
- js首字母大写--单个单词的处理方式
- php 处理透明背景的图片时的问题
- MyBatis的简单操作
- C#获取单个字符的拼音声母
- 嵌入式系统 Boot Loader
- Android Bundle类别
- iOS开发之监听键盘高度的变化
- laravel中数据库在哪个文件中配置
- [HNOI2011]数学作业
- python之路之简单介绍:
- CE找基址
- mybatise 实现同一字段多模糊查询
- 使用经验风险最小化ERM方法来估计模型误差 开坑
- 纯css3实现的win8加载动画
- ugui的优化
热门文章
- Ubuntu 16.04 LTS制作本地源
- java中final用法
- Spark Streaming之一:整体介绍
- 如何通过ISO安装win7程序
- JDBC---bai
- 关于pipe管道的读写端关闭问题
- Python 标准库 ->; Pprint 模块 ->; 用于打印 Python 数据结构
- ASP.NET 连接MySql数据库
- hadoop-2.6.0.tar.gz + spark-1.6.1-bin-hadoop2.6.tgz + zeppelin-0.5.6-incubating-bin-all.tgz(master、slave1和slave2)(博主推荐)(图文详解)
- cookie禁用后的session