我正在开发一个用于医疗目的的Web应用程序,用户可以为特定患者,医生和设施创建预约。每个医疗机构可能有N名医生,每位医生将安排N个预约,并且还会显示每位医生的可用情况(例如:Doctor Who周三工作时间为9:00至12:00和15:00至18:00)。
对于前端部分,我使用fullcalendar,后端使用Struts2(控制器)+ Spring(依赖注入)+ Hibernate(DAO)。
由于用户(通常)必须将约会从本周加载到未来一个月或两个月,并且每个设施可能会有一到N个用户长时间使用此视图, d想使用Redis缓存约会+可用性,我已将Spring data redis与Lettuce客户端添加到我的项目中。我们的想法是使用@Cacheable
,@CachePut
和@CacheEvict
注释来处理DAO的方法,处理用户操作,如list,创建和更新约会,避免redis数据和数据库之间的冲突数据和其他并发问题。
我的问题是:
答案 0 :(得分:-1)
我从这里了解到,您希望在redis中缓存预约和可用性的单独数据,以便可以避免不必要的数据库调用并提高性能。
我在这里几点:
如果您的数据较少,那么它将无法提高性能,因为我认为redis服务器将被远程放置,并且它也有网络开销。因此,您可以选择任何InMemory Cache作为Guava缓存。
如果有大量数据使用,那么redis是有益的。 现在我来到第一点,如果这是正确的策略?我会说是的。 第二点,如果您需要实现自定义密钥生成器,则取决于以redis形式存储数据的唯一方式。 Redis是(关键,价值)商店。所以我认为约会将从(设施+医生ID)中唯一确定 你需要实现CustomKeyGenerator。