类似 mysql 的这种自动整数递增的 id 插入数据的方式,有什么 nosql 的数据库,可以实现吗?

2022 年 3 月 24 日
 xiaoyanbot
如 mysql 的结构类似:

id name
-- --
1 apple
2 banana

程序直接使用 insert values ('apple') 来获得一个新的 id = 3 的对应数据条目

类似这种,不一定使用 sql 语句,比如 add('apple') 这种语句之类的, 有什么 nosql 的数据库,可以显示吗?
1349 次点击
所在节点    问与答
6 条回复
Mithril
2022 年 3 月 24 日
你用 UUID 都是递增的。
主要是很多 NoSQL 的使用场景都是多节点集群,你要这种严格递增很难在多机情况下保证的。
timethinker
2022 年 3 月 24 日
nosql 大多都是分布式数据库,如果引入自增的这种特性,意味着每一次插入都需要协调维护一个计数器,这会引入额外的同步开销,因此最好是自己在应用层去维护这个计数器,而不是依靠数据库本身提供类似的功能。
GuangXiN
2022 年 3 月 24 日
redis 分两步做喽

$id = hincrby "xxx_id" 1
hset "xxx" $id "apple"
xiaoyanbot
2022 年 3 月 25 日
@GuangXiN 赞, $id 这种用法, 是用在 lua 脚本里面吗?
GuangXiN
2022 年 3 月 25 日
@xiaoyanbot 用你的语言写啊,比如 TypeScript:
GuangXiN
2022 年 3 月 25 日
const id = await redis.command('hincrby', 'xxx_id', 1);
await redis.command('hset', 'xxx', id, JSON.stringify(someValueToStore));

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/842672

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX