Rob*_*obC 15 python sqlalchemy nosql redis
我正在学习使用连接到SQL数据库的SQLAlchemy来获得12个标准关系表(例如SQLite或PostgreSQL).但后来我想将Redis与Python一起用于几个表,特别是对于Redis的快速设置操作.我意识到Redis是NoSQL,但是为了SQLAlchemy的会话和线程处理的好处,我可以将它与SQLAlchemy集成吗?
有Redis SA方言吗?我找不到它,这可能意味着我错过了一些基本观点.是否有更好的架构我应该考虑使用两种不同类型的数据库?
Tom*_*son 15
虽然可以设置一个将数据放入redis的ORM,但这不是一个特别好的主意.ORM旨在公开标准SQL功能.除非你做了很多额外的工作,否则许多在SQL中标准的东西,例如在任意列上查询都不可用.同时,redis具有标准SQL中不存在的集合操作等功能,因此ORM不会使用.
您最好的选择可能是编写代码以直接与redis交互,而不是尝试使用不合适的抽象 - 通常您会发现从redis中获取数据的代码比使用ORM证明合理的SQL代码要简单得多.
cyr*_*joe 13
Redis非常擅长它的功能,存储键值并进行简单的原子操作,但是如果你想将它用作关系数据库,那么你真的会厌倦!,就像我一样......这就是我的故事...... .
我已经做了类似的事情,制作了几个对象来抽象所有redis内部构件暴露原语查询(我在代码中称为过滤器),获取,设置,更新以及更多可以从ORM中获得的方法,事实上如果你只处理localhost,你不会觉得你的应用程序有任何缓慢,你可以使用redis作为关系数据库,但如果你在任何时候尝试将数据库移动到另一个主机,那将代表很多在网络传输方面的问题,我最终得到了一堆使用redis和他的管道重新入侵的类,它使我的程序速度提高了900%,使其在本地网络中可用,无论如何我开始移动我的postgres的数据库库.
这段历史的教训是永远不要尝试用关键值模型建立关系数据库,在基本操作中运行良好,但是在服务器中无法建立关系的代价需要很高的成本.
回到你的问题,我不知道有任何项目为sqlalchemy为redis制作一个适配器,我认为没有人会对这样的东西感兴趣,因为每个项目的性质.
| 归档时间: | 
 | 
| 查看次数: | 9532 次 | 
| 最近记录: |