如何自动加载一些经常读取但几乎从不更新的配置数据?
How to autoload a little config data read frequently but nearly never being updated?
我们有一些几乎不会更新但经常读取的数据(站点配置和一些选择项,如州和县信息),我想如果我可以将它移动到应用程序内存而不是任何数据库,我们的I/O性能会得到很大的提升。
但是我们有很多网络服务器,我想不出一个好的解决方案如何通知所有服务器重新加载这些数据。
您可能正在寻找一种缓存模式:Is there a Python caching library?您只需要问问自己能承受多陈旧。如果它在每次请求时都查找它,那么即使是短暂的缓存也可以极大地提高性能。尽管这些信息可能会存在几分钟或几小时,但不会有太大的风险 "stale".
如果您不能忍受陈旧的缓存,我已经实现了具有单个数据库调用的解决方案,它跟踪 any 的最后更新日期缓存数据。这至少将缓存查找减少到单个数据库调用。
不过请注意,一旦共享可更新信息,就必须处理共享状态的多线程更新。确保您了解其含义。希望您的缓存库能够优雅地处理这个问题。
我们有一些几乎不会更新但经常读取的数据(站点配置和一些选择项,如州和县信息),我想如果我可以将它移动到应用程序内存而不是任何数据库,我们的I/O性能会得到很大的提升。
但是我们有很多网络服务器,我想不出一个好的解决方案如何通知所有服务器重新加载这些数据。
您可能正在寻找一种缓存模式:Is there a Python caching library?您只需要问问自己能承受多陈旧。如果它在每次请求时都查找它,那么即使是短暂的缓存也可以极大地提高性能。尽管这些信息可能会存在几分钟或几小时,但不会有太大的风险 "stale".
如果您不能忍受陈旧的缓存,我已经实现了具有单个数据库调用的解决方案,它跟踪 any 的最后更新日期缓存数据。这至少将缓存查找减少到单个数据库调用。
不过请注意,一旦共享可更新信息,就必须处理共享状态的多线程更新。确保您了解其含义。希望您的缓存库能够优雅地处理这个问题。