在NoSQL存储中使用ORMs是不好的做法?

2024-05-18 09:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python平台中使用Redis(redis-py)。最近有人建议我改用ORM。在

{a4}或^ a3}

在NoSQL世界中使用ORMs是否被认为是不好的做法?在


Tags: pyredisorm世界平台建议a3orms
2条回答

最终问题归结为您想在哪一层编写代码。在

您是要编写在远程数据库中操纵数据结构的代码,还是要编写使用构建在这些数据结构之上的抽象的高级代码?你可以把它看作是一个关于关系数据库的类似问题,就像你想写SQL,还是想写更高级的代码?在

就个人而言,尽管我自己使用rom完成各种任务(我是作者),但我也在同样的项目中直接操作Redis,因为这是有意义的。在

有评论指出,ORM中的R表示关系型,这在技术上是正确的。这并不意味着抽象redis的库没有有效的用途和理由。在

有一些很好的库可以使与redis的接口感觉更好,并且对您所使用的语言更加习惯。对于像ohmredis-native_hash(披露:我写了这个)这样的ruby库就这样做了。对于python,有类似redisco之类的工具,当然还有其他工具。这使得将对象持久化到redis变得非常简单,并使使用redis感觉更像ruby或python。在

使用甚至是最基本的抽象,比如可以在应用程序中编写并保存的非常薄的包装器,还可以从中获得更多好处:

  • 交换redis客户端会更容易。也许你永远不会这样做,但是如果你这么做了,在一个地方(你的包装器)改变你对redis的调用要比在你使用redis的任何地方更改它们简单得多。

  • 如果您的调用是通过某种抽象进行的,那么实现扩展所需的东西(如分片或连接池)可能会更容易。

  • 如果存在抽象,那么用其他键/值存储或数据结构服务器替换redis会更简单。

我并不是提倡使用对象映射库或构建自己的抽象,只是指出了为什么要使用对象映射库。由你来评估你的需求,选择最适合你的。直接打给redis也没什么错。在

相关问题 更多 >