• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

redis为什么是key,value的,为什么不支持sql

因为redis是基于内存的数据库,注意nosql并不能理解为不是sql,而应该是not only sql,其应用场景是快速读写,那么对于复杂查询等操作显然不是redis考虑的重点,选择k-v键值对可以满足快速读写功能,而sql也可以实现复杂的查询。

一、redis为什么是key,value的

因为redis是基于内存的数据库,注意nosql并不能理解为不是sql,而应该是not only sql,其应用场景是快速读写,那么对于复杂查询等操作显然不是redis考虑的重点,选择k-v键值对可以满足快速读写功能,而sql也可以实现复杂的查询。

redis没有sql解析器,更没有实体的概念,它的理论基础不是关系代数。

ES能实现sql操作,是因为ES中有mapping,能够把index中的doc映射成关系代数的元组,也就是RDBMS中的行,其最终能解释成Query DSL。

而redis中的value尽管也能通过json字符串来存储关系,再封装一层sql解析器,那不就是脱了裤子放屁嘛,那还要redis干吗?至于那些走扩展(邪)路线实现sql查询redis的,我严重怀疑这些业务是否适合使用reids,置redis快取快存的优点于何地。搞个内存大点的mysql不香吗?

支持不支持sql和内存数据库没啥关系,更和事务没啥关系。只不过sql恰好是rdbms进行交互的接口。

其实生产环境下oltp类型oracle缓存命中率95%以上,大部分的IO和shared buffer来交互的,事务持久化通过commit在redo上完成,db持久化通过checkpoint把脏数据刷到dbfile。

延伸阅读:

二、应用架构是什么

应用架构(Application Architecture)是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次:

  • 企业级的应用架构:企业层面的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。在企业架构中,应用架构是最重要和工作量最大的部分,他包括了企业的应用架构蓝图、架构标准/原则、系统的边界和定义、系统间的关联关系等方面的内容。

单个系统的应用架构:在开发或设计单一IT系统时,设计系统的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑,到后台数据是如何架构的。这方面的工作一般属于项目组,而不是企业架构的范畴。

相关文章