当前位置: 首页 > news >正文

潍坊网站建设wf3建设网站江西

潍坊网站建设wf3,建设网站江西,百度搜索关键词,wordpress more标签 无效系列博客目录 文章目录 系列博客目录WhyRedis自增ID策略 Why 我们需要设置全局唯一ID。原因:当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题。 问题:id的规律性太明显、…

系列博客目录


文章目录

  • 系列博客目录
  • Why
  • Redis自增ID策略


Why

我们需要设置全局唯一ID。原因:当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题。
问题:id的规律性太明显、受单表数据量的限制。所以在自己的项目中,针对上传的数据的ID的生成也可以使用全局唯一ID。表中有ID,属性类型(文本、音频、图像)以及存储位置,文件名(文件名由ID+原始文件名作为后缀组成)。
多种ID比如用户ID,订单ID。

全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具,一般要满足下列特性:高可用、唯一性、高性能、递增性、安全性。

Redis自增ID策略

为了增加ID的安全性,我们可以不直接使用Redis自增的数值,而是拼接一些其它信息:
在这里插入图片描述

ID的组成部分:

  • 符号位:1bit,永远为0
  • 时间戳:31bit,以秒为单位,可以使用69年
  • 序列号:32bit,秒内的计数器,支持每秒产生2^32个不同ID
package com.hmdp.utils;import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;@Component
public class RedisIdWorker {/*** 开始时间戳*/private static final long BEGIN_TIMESTAMP = 1640995200L;/*** 序列号的位数*/private static final int COUNT_BITS = 32;private StringRedisTemplate stringRedisTemplate;public RedisIdWorker(StringRedisTemplate stringRedisTemplate) {this.stringRedisTemplate = stringRedisTemplate;}public long nextId(String keyPrefix) {// 1.生成时间戳LocalDateTime now = LocalDateTime.now();long nowSecond = now.toEpochSecond(ZoneOffset.UTC);long timestamp = nowSecond - BEGIN_TIMESTAMP;// 2.生成序列号// 2.1.获取当前日期,精确到天String date = now.format(DateTimeFormatter.ofPattern("yyyy:MM:dd"));// 2.2.自增长long count = stringRedisTemplate.opsForValue().increment("icr:" + keyPrefix + ":" + date);// 3.拼接并返回return timestamp << COUNT_BITS | count;}
}

使用的示例代码如下:

// 7.创建订单
VoucherOrder voucherOrder = new VoucherOrder();
// 7.1.订单id
long orderId = redisIdWorker.nextId("order");
voucherOrder.setId(orderId);
// 7.2.用户id
voucherOrder.setUserId(userId);
// 7.3.代金券id
voucherOrder.setVoucherId(voucherId);
save(voucherOrder);// 7.返回订单id
return Result.ok(orderId);

每天一个key,方便统计订单量
ID 的构造是 :时间戳 + 计数器

http://www.yayakq.cn/news/236375/

相关文章:

  • 网站租房做公寓北京互联网企业有哪些
  • 东城网站制作公司搜索关键词排名
  • 律师网站设计网站开发时如何兼容
  • 科技公司网站设计服务哪个网站能在线做司考题目
  • 温州专业微网站制作公司哪家好网站站内站建设现状
  • 广东网站建设公司网络服务做网站别人输账号代码
  • iis7 多个网站 80端口东莞网络优化
  • 南京做网站公司网络营销比较常用的营销模式
  • 大航母网站建设怎么样大的网站建设公司
  • 网站网站制作服务桂林市是几线城市
  • 做汽配找哪个网站好如何创建一个网站0元
  • 网站建设完成外网无法访问淘宝客网站女装模板下载
  • 网站版面的图文是怎么做的wordpress python导入
  • 哪个网站可以免费学编程wordpress图片墙插件
  • 成都服装网站建设宿舍网页设计html模板
  • 怎样制作网站和软件企业规划设计
  • 教育加盟网站建设网站获利模式
  • 罗湖福田app网站开发网站建设和网站维护
  • 腾讯云做视频网站吗关于介绍网页设计的演讲稿
  • 建设速干裤移动网站WordPress做成小程序
  • 赣州做网站的公司安装wordpress用什么
  • 网站关键词搜索网站建设中企动力最佳a4
  • 乐山建设企业网站公司网站数据库
  • 网页制作网站创建比较知名的网站建设公司
  • 太原建站模板厂家如何再国外网站做折扣
  • 国外游戏网站欣赏收录网站工具
  • 电力公司 网站开发报价单国内旅行做行程网站
  • 重庆专业网站排名团队做谷歌推广一个月赚10万
  • 网站首页在哪个文件夹中国建筑查询平台
  • 企业小程序怎么注册seo必备软件