从SQL切换到Redis作为独立

时间:2015-06-09 23:05:40

标签: asp.net sql-server session caching redis

提问前的背景信息

我使用状态会话来存储我的复杂对象,我也使用最多8个表。在这8个表中,我使用大约25个SP来根据用户ID和用户选择的一些键值来加入用户。所有这些都在SQL Server数据库上完成。

  1. 邮政编码空间值
  2. 男性或女性
  3. 有图片
  4. 已批准的个人资料
  5. 注册帐户(支付服务费)
  6. 我将图像存储在应用程序服务器上的文件系统中。我将路径存储在我的数据库表中。

    使用案例

    约会网站,大部分时间都有独特的有效负载,例如根据特定条件进行搜索,更新和获取带有照片的个人资料。我使用的是asp.net MVC,这只是一个网站。 (为其他设备提供响应式设计的单独网页)

    问题

    我可以使用Redis作为主数据存储,而不是根据我的用例使用SQL Server数据库吗?

    要点

    我计划未来的表总数超过10-12个。数据输入主要是字符串。当我想要保留像配置文件信息和图像路径这样的复杂对象时,我使用会话状态。我喜欢我读到的有关Redis速度的内容,如果我将它们堆叠起来,我认为重复Redis和DB的更新会产生相反的效果。

1 个答案:

答案 0 :(得分:0)

我不认为您可以轻松地用Redis替换您的数据库,因为您缺少FK,索引,约束等内容(Redis是NoSQL,因此您不具备任何关系属性)。因此,您最终将自己构建这些,尤其是25个存储过程的索引,这些索引可能会变得非常复杂。另外,你的8个表有25个存储过程的事实告诉我你在这里有一些逻辑,这将更难移动到Redis或你的应用层。

当然,将Redis添加到您的堆栈并不容易,它会使您的应用程序更加复杂,因此您必须权衡利弊。而Redis因为它将所有内容保存在内存中,因此最适合缓存层。