我目前正在构建一个在网络前端使用python的高流量GIS系统。该系统是99%只读。为了提高性能,我正在考虑使用外部生成的预先生成的读取优化GIS信息缓存,并将其存储在每个Web服务器上的SQLite数据库中。简而言之,它将被用作分布式只读缓存,不必跳过网络。后端OLTP存储将是postgreSQL,但它将处理不到1%的请求。
我考虑过使用Redis,但数据集非常大,因此会增加托管的虚拟机的管理成本和内存成本。 Memcache不适合,因为它无法进行范围查询。
我是否会尝试使用SQLite执行读并发问题?
这是一种明智的做法吗?
答案 0 :(得分:5)
经过大量的研究和性能测试后,SQLite非常适合这一点。它对静态数据有很好的请求并发性。如果你正在进行写操作和重读,SQLite只会成为一个问题。
此处提供更多信息:
答案 1 :(得分:-3)
如果用例只是一个缓存,为什么不使用类似的东西 http://memcached.org/
您可以在pypi存储库中找到python的memcached绑定。
另一个选择是你在postgres中使用物化视图,这样你就可以保持简单并将所有东西放在一个地方。
http://tech.jonathangardner.net/wiki/PostgreSQL/Materialized_Views