flask+gunicorn的小型缓存实现
为了提高flask的查询速度,构想先把数据放在一个字典中,然后将这个字典作为缓存使用,后来遇到gunicorn多进程不能共享变量的问题(广义上多进程共享变量都是困难的),后来想过采用redis作为缓存数据,但配合我的场景 使用起来太麻烦,后来又继续研究共享变量的问题,起初搜索到multiprocessing 模块可以使用value 和 Array两种共享变量的类型,后来发现multiprocessing还有一个manager模块,它能够提供多样的数据结构来用于共享,其他就是实验了,flask程序中的共享变量改为使用
manager = multiprocessing.Manager()#创建共享数据对象
preload_data = manager.dict()
之后对preload_data进行正常的字典操作,完美的解决了问题