提问前的背景信息
我使用状态会话来存储我的复杂对象,我也使用最多8个表。在这8个表中,我使用大约25个SP来根据用户ID和用户选择的一些键值来加入用户。所有这些都在SQL Server数据库上完成。
我将图像存储在应用程序服务器上的文件系统中。我将路径存储在我的数据库表中。
使用案例
约会网站,大部分时间都有独特的有效负载,例如根据特定条件进行搜索,更新和获取带有照片的个人资料。我使用的是asp.net MVC,这只是一个网站。 (为其他设备提供响应式设计的单独网页)
问题
我可以使用Redis作为主数据存储,而不是根据我的用例使用SQL Server数据库吗?
要点
我计划未来的表总数超过10-12个。数据输入主要是字符串。当我想要保留像配置文件信息和图像路径这样的复杂对象时,我使用会话状态。我喜欢我读到的有关Redis速度的内容,如果我将它们堆叠起来,我认为重复Redis和DB的更新会产生相反的效果。
答案 0 :(得分:0)
我不认为您可以轻松地用Redis替换您的数据库,因为您缺少FK,索引,约束等内容(Redis是NoSQL,因此您不具备任何关系属性)。因此,您最终将自己构建这些,尤其是25个存储过程的索引,这些索引可能会变得非常复杂。另外,你的8个表有25个存储过程的事实告诉我你在这里有一些逻辑,这将更难移动到Redis或你的应用层。
当然,将Redis添加到您的堆栈并不容易,它会使您的应用程序更加复杂,因此您必须权衡利弊。而Redis因为它将所有内容保存在内存中,因此最适合缓存层。