14

我对 REDIS DB 有一些疑问:

  • 如何保证数据的完整性?
  • 有没有保证完整性的方法?
  • Redis有主键吗?或替代品
  • 外键?
  • 参照完整性?
  • ACID 属性如何实现?

感谢您提供可能的反馈

最好的问候 - SB -

4

2 回答 2

22

Redis 是类固醇上的键/值存储,而不是关系数据库。

如何保证数据的完整性?有没有保证完整性的方法?

Redis 支持从“不安全但非常高效”到“安全但不是非常高效”的不同持久性选项。在以下位置查看更多信息:

Redis 还支持主从复制机制,以在完全节点故障的情况下保护数据。

单个 Redis 实例始终提供数据一致性(在 CAP 定理的意义上,而不是在 ACID 的意义上)。

Redis有主键吗?或替代品

Redis 是一个键/值存储。所有物品都有一把钥匙。没有主键或辅助键的概念。

外键?参照完整性?

这些是关系概念。Redis 不是关系数据库。外键没有任何意义(Redis 没有表的概念)。Redis 不维护引用完整性,必须由客户端应用程序强制执行。

ACID 属性如何实现?

它们不应该被实现,因为 Redis 不是事务数据库。Redis 没有回滚机制。但是,就 ACID 特性而言:

  • 使用服务端 Lua 脚本可以保证一组命令的原子性和一致性
  • 始终在命令级别保证隔离,也可以使用 MULTI/EXEC 块或 Lua 脚本来保证一组命令
  • 激活 AOF 时可以保证持久性(使用系统 fsync)
于 2013-02-11T10:42:29.183 回答
0

Redis Graph 是您需要更好的数据完整性和关系的模块

于 2021-03-05T11:30:57.547 回答