卡飞资源网

专业编程技术资源共享平台

面试官:你知道哪些分布式ID生成方案?

近两年的技术面试,分布式系列是面试官经常会问到的一个高频方向,比如:分布式事务、分布式锁、分布式调度、分布式存储、分布式ID等。

如何利用Redis做数据库的主键生成机制

有些情况,我们不能使用数据库自带的主键生成机制(例如:使用分表的策略,采用数据库自增主键将使得每张物理表的主键彼此独立,这不是我们想要的)。

由于这段时间redis使用挺多的,现在就看看如何生成主键。

我们初步设想ID的生成规则:

根据每一个库的每一张表组合成一个key, 然后依靠redis进行生成ID

1. 首先定义了一个生成id的接口类

2. 定义一个子类,实现我们的接口

3. 或使用Spring的redisTemplate实现,这就是接口的好处了,扩展另一种实现很方便。

主键ID的几种生成方式

一线大厂的分布式唯一ID生成方案

一、前言

分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。小伙伴们可以去看一下《分库分表?如何做到永不迁移数据和避免热点?》

但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,永不迁移数据和避免热点的文章中要求需要唯一ID的特性:

  • 整个系统ID唯一

系统开发中的唯一流水号生成——Redis

一、前言

无论做什么类型的系统,都会牵涉到一个唯一流水号生成的问题,这个流水号可能是不规则的,也可能是有特定的有序格式。

在系统开发中比较常用的有数据库生成、缓存生成、数据库+缓存。这里就上述情况做一些简要记录。

二、数据库生成

深入探究唯一ID生成方案

一,唯一ID的特性:

  • 整个系统ID唯一
  • ID是数字类型,而且是趋势递增的
  • ID简短,查询效率快

什么是递增?

如:第一次生成的ID为12,下一次生成的ID是13,再下一次生成的ID是14。这个就是生成ID递增。

什么是趋势递增?

如:在一段时间内,生成的ID是递增的趋势。如:再一段时间内生成的ID在【0,1000】之间,过段时间生成的ID在【1000,2000】之间。但在【0-1000】区间内的时候,ID生成有可能第一次是12,第二次是10,第三次是14。

一文搞定分布式系统ID生成方案

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。

1. 数据库自增长序列或字段

最常见的方式。利用数据库,全数据库唯一。

优点

1)简单,代码方便,性能可以接受。

推荐 3 个 .NET 流行的 Redis 客户端库

月薪30k 的Java面试题,哭着也要背完!(附答案)

你好,我是田哥

最近整理了一份面试题,只要你能好好地背,找工作就妥妥的稳。

话不多说,请看题。

Redis的事务与关系型数据库事务有何不同?

引言:关于 Redis 的事务很多人可能都是一知半解,大多数人只了解数据库的事务,并且是单体事务,对于 Redis 事务和常见关系型数据库的事务的区别还没有去了解过,本文就来详细进行介绍。

题目

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言