我目前设置了一个相当小的关系数据库(SQLite,改为PostgreSQL),它有一些相对简单的多对一和多对多关系。该应用程序使用Websockets为任何客户端提供实时更新,因此我希望尽快进行任何操作。我计划使用redis根据需要缓存内存中的部分数据(将经常读/写的部分),以便查询更快。我知道目前数据库的数量如此之小,性能提升并不明显,但我希望它可以扩展。
似乎有很多材料/信息表明使用redis作为缓存是一个好主意,但我很难找到有关何时适合编写SQL数据库更新的更多信息,以及如何最好地做到这一点。
例如,我是否应该向redis-store写入更新,然后将更新的数据发送到客户端,然后在同一请求中按此顺序将相同的更新写入SQL数据库? (即更频繁的小写)
或者我应该只是将更新写入redis-store并将更新的数据发送给客户端。然后,定期(每分钟?)从redis-store读回来,然后将其保存在SQL数据库中? (即频率较低但写入较大)
或者是否有一些其他最佳做法可以保持redis商店和SQL数据库的一致性? 我的第一个示例是否会因为对磁盘的写入次数较多以及CPU处于更活跃状态或者可忽略不计而表现不佳?