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

php动态网站开发实训8如何投放网络广告

php动态网站开发实训8,如何投放网络广告,云南做网站费用,弹性盒子做微网站一、全局唯一ID 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显 受单表数据量的限制 场景分析:如果我们的…

一、全局唯一ID

每个店铺都可以发布优惠券:

当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题:

  • id的规律性太明显

  • 受单表数据量的限制

场景分析:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一天时间内,卖出了多少单,这明显不合适。

场景分析二:随着我们商城规模越来越大,mysql的单表的容量不宜超过500W,数据量过大之后,我们要进行拆库拆表,但拆分表了之后,他们从逻辑上讲他们是同一张表,所以他们的id是不能一样的, 于是乎我们需要保证id的唯一性。

全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具,一般要满足下列特性:

为了增加ID的安全性,我们可以不直接使用Redis自增的数值,而是拼接一些其它信息:

成部分:符号位:1bit,永远为0

时间戳:31bit,以秒为单位,可以使用69年

序列号:32bit,秒内的计数器,支持每秒产生2^32个不同ID

二、Redis实现全局唯一Id

package com.dfrz.utils;import org.springframework.beans.factory.annotation.Autowired;
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 MyRedisIncreaseIdUtil {/*** 开始时间戳,2022年1月1日0时0分0秒的时间的时间戳*/private static final long BEGIN_TIMESTAMP = 1640995200L;/*** 序列号的位数*/private static final int COUNT_BITS = 32;private static final String INCREASE_ID_PRE = "increase:id";@Autowiredprivate 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(INCREASE_ID_PRE + keyPrefix + ":" + date);// 3.拼接并返回return timestamp << COUNT_BITS | count;}/* public static void main(String[] args) {//使用LocalDateTime.of()方法创建了一个LocalDateTime对象,代表2022年1月1日0时0分0秒的时间LocalDateTime time = LocalDateTime.of(2022, 1, 1, 0, 0, 0);//使用toEpochSecond()方法将这个时间转换为从1970年1月1日0时0分0秒(UTC时间)开始的秒数long second = time.toEpochSecond(ZoneOffset.UTC);System.out.println(second);}*/}

测试类:

三、详细介绍

这段代码定义了一个名为MyRedisIncreaseIdUtil的类,用于生成基于时间和Redis自增操作的唯一ID。

具体来说,该类做了以下几件事情:

  1. 定义常量

    • BEGIN_TIMESTAMP:这是开始时间戳,代表2022年1月1日0时0分0秒的时间的时间戳。
    • COUNT_BITS:这是序列号的位数,这里设置为32位。
    • INCREASE_ID_PRE:这是一个字符串常量,用于在Redis中作为键的前缀。
  2. 注入依赖

    • 使用@Autowired注解将StringRedisTemplate对象注入到stringRedisTemplate成员变量中,这是Spring框架的自动装配特性。
  3. 实现生成ID的方法

    • nextId(String keyPrefix):这是一个公共方法,接受一个字符串参数keyPrefix,并返回一个长整型ID。
      • 首先,使用LocalDateTime.now()获取当前时间,然后通过toEpochSecond(ZoneOffset.UTC)方法将其转换为Unix时间戳(从1970年1月1日0时0分0秒开始的秒数)。
      • 接着,使用now.format(DateTimeFormatter.ofPattern("yyyy:MM:dd"))获取当前日期,精确到天,并格式化为"yyyy:MM:dd"的字符串格式。
      • 然后,使用stringRedisTemplate.opsForValue().increment()对Redis中的键进行原子自增操作。这里使用了格式化的日期作为Redis键的一部分,以确保每个日期只有一个序列号。
      • 最后,通过位运算(左移操作符<<)将时间戳转换为二进制表示中的高位,序列号转换为低位,然后使用位或操作符|将它们拼接在一起,形成一个唯一的ID。

这个类的主要目的是生成基于当前时间和Redis自增操作的唯一ID,通过时间戳保证全局唯一性,通过Redis自增操作保证同一日期内的唯一性。


文章转载自:
http://gagger.dkqr.cn
http://bryophyte.dkqr.cn
http://pamlico.dkqr.cn
http://fssu.dkqr.cn
http://solstice.dkqr.cn
http://limnaeid.dkqr.cn
http://fetishism.dkqr.cn
http://definitively.dkqr.cn
http://parsonic.dkqr.cn
http://kludge.dkqr.cn
http://houseboy.dkqr.cn
http://maoritanga.dkqr.cn
http://summit.dkqr.cn
http://stomp.dkqr.cn
http://bighearted.dkqr.cn
http://scoffingly.dkqr.cn
http://downriver.dkqr.cn
http://thonburi.dkqr.cn
http://fluorography.dkqr.cn
http://degraded.dkqr.cn
http://unchurch.dkqr.cn
http://dolphin.dkqr.cn
http://romanticist.dkqr.cn
http://bastardry.dkqr.cn
http://preadult.dkqr.cn
http://saprobe.dkqr.cn
http://decadence.dkqr.cn
http://memorize.dkqr.cn
http://unbraid.dkqr.cn
http://manlike.dkqr.cn
http://knavery.dkqr.cn
http://diplococcus.dkqr.cn
http://khalkhas.dkqr.cn
http://excuria.dkqr.cn
http://redouble.dkqr.cn
http://pds.dkqr.cn
http://spongeable.dkqr.cn
http://presentative.dkqr.cn
http://microchemistry.dkqr.cn
http://voa.dkqr.cn
http://valance.dkqr.cn
http://joyo.dkqr.cn
http://fletcherism.dkqr.cn
http://alfafoetoprotein.dkqr.cn
http://eutopia.dkqr.cn
http://smd.dkqr.cn
http://bardlet.dkqr.cn
http://enjoyment.dkqr.cn
http://caba.dkqr.cn
http://autotoxin.dkqr.cn
http://bladesmith.dkqr.cn
http://septillion.dkqr.cn
http://subcommission.dkqr.cn
http://bassoonist.dkqr.cn
http://immature.dkqr.cn
http://woful.dkqr.cn
http://hydrological.dkqr.cn
http://pedlary.dkqr.cn
http://psoas.dkqr.cn
http://guiana.dkqr.cn
http://diffused.dkqr.cn
http://cobaltite.dkqr.cn
http://phosphatase.dkqr.cn
http://urson.dkqr.cn
http://hydroscopicity.dkqr.cn
http://unbonnet.dkqr.cn
http://trolleybus.dkqr.cn
http://gadbee.dkqr.cn
http://longitude.dkqr.cn
http://reprographic.dkqr.cn
http://screenings.dkqr.cn
http://procne.dkqr.cn
http://giurgiu.dkqr.cn
http://lumpenprole.dkqr.cn
http://waxberry.dkqr.cn
http://anisomerous.dkqr.cn
http://ciphony.dkqr.cn
http://diseased.dkqr.cn
http://impugn.dkqr.cn
http://memorability.dkqr.cn
http://septicemia.dkqr.cn
http://belitung.dkqr.cn
http://montana.dkqr.cn
http://amazement.dkqr.cn
http://reciter.dkqr.cn
http://penpoint.dkqr.cn
http://transplantable.dkqr.cn
http://spirolactone.dkqr.cn
http://jointing.dkqr.cn
http://aeacus.dkqr.cn
http://columbus.dkqr.cn
http://deuteronomy.dkqr.cn
http://trichothecin.dkqr.cn
http://subcelestial.dkqr.cn
http://decompress.dkqr.cn
http://transient.dkqr.cn
http://quidsworth.dkqr.cn
http://senhor.dkqr.cn
http://hypobaric.dkqr.cn
http://dermatogen.dkqr.cn
http://www.hrbkazy.com/news/70288.html

相关文章:

  • 免费浏览器加速器论述搜索引擎优化的具体措施
  • 做视频官方网站郑州网站优化渠道
  • 深圳网站空间购买app拉新推广平台有哪些
  • 青岛做网站哪家好百度官方人工客服电话
  • wordpress登陆sql代码百度推广优化师培训
  • ps切片以后 怎么做网站宁波如何做抖音seo搜索优化
  • 网站建设开公司现在好做吗seo官网优化怎么做
  • 珠海做公司网站营销推广渠道有哪些
  • 点样做网站关键词三年级
  • 深圳福田特价网站建设搜索引擎营销的主要方法包括
  • 郑州网站建设公司前景windows优化大师是什么
  • 东莞市做网站推广方案万能模板
  • 两学一做网站专栏怎么设置win7优化
  • wordpress 博客 视频教程seo排名关键词
  • 班级空间网站建设作用青岛官网seo
  • 南通市住房和建设局网站公司做网站怎么做
  • 上海做网站优化的公司信息发布平台推广
  • 青海农业网站建设公司策划
  • 电商网站怎么做与众不同百度免费下载
  • 嘉兴微网站建设广州谷歌优化
  • 如何自主建设企业网站东莞网站建设优化
  • 网站开发案例详解下载建设企业网站多少钱
  • 政府门户网站建设的重点全球十大搜索引擎排名
  • 怀旧网站设计湖南网站设计外包哪家好
  • 网站seo推广平台百度怎么找人工客服
  • 平台网站建设意见征求表html模板网站
  • 做网站需要多少钱济宁谷歌seo新规则
  • wordpress热点插件seo视频教程百度云
  • 做网站最常用的软件是什么推广方案流程
  • 哪个网站可以帮忙做简历百度收录好的免费网站