Java 使用Redis和MySQL实现DAO

Java 使用Redis和MySQL实现DAO,java,mysql,spring,redis,Java,Mysql,Spring,Redis,我正在开发一个同时使用MySQL服务器和Redis服务器的web应用程序。 我遵循DAO设计模式,在决定接口的实现时遇到困难。 以下是手头的问题: 该界面是否应该包括MySQL和Redis的所有功能 我应该分别为MySQL和redis实现接口吗?或者应该是两者的一种实现 如果加入了实现,每次如何选择数据源 我正在使用Spring框架连接数据源并运行各种查询。 到目前为止,我只使用SpringJDBCTemplate和Tomcat连接池实现了MySQL部分。我很乐意得到一些关于如何将Redis位与

我正在开发一个同时使用MySQL服务器和Redis服务器的web应用程序。
我遵循DAO设计模式,在决定接口的实现时遇到困难。
以下是手头的问题:

  • 该界面是否应该包括MySQL和Redis的所有功能
  • 我应该分别为MySQL和redis实现接口吗?或者应该是两者的一种实现
  • 如果加入了实现,每次如何选择数据源 我正在使用Spring框架连接数据源并运行各种查询。

    到目前为止,我只使用SpringJDBCTemplate和Tomcat连接池实现了MySQL部分。我很乐意得到一些关于如何将Redis位与Spring框架集成的建议

    定义一个接口和两个实现:一个用于MySQL,另一个仅用于Redis。然后,在服务层中,注入DAO接口的正确实现


    如果您需要首先在Redis上搜索数据,如果数据不存在,则在MySQL中搜索,那么您应该在服务层而不是DAO中实现这一点。请记住,DAO应该只包含与数据源通信所需的逻辑。

    正如您可能知道的,DAO与技术无关

    接口应该包含与业务对象一起工作的功能,因此,接口必须包含完整的功能

    传统实现中DAO的一个问题是,必须将DAO之间的连接作为参数传递,以确保事务。国际奥委会在Spring框架中没有做到这一点


    Spring决定DAO的实现,因此必须在喷射引擎上进行配置。对于池,它取决于您使用的redis客户端。

    将某些方法保留为“空”可以吗?我需要一部分用于Redis,一部分用于MySQL。这不好。为特定数据库定义一个公共接口,然后定义子接口以及每个接口的实现。请注意,您的数据库引擎可能会从MySQL更改为另一个rdbms,与Redis类似。