首页 > 其他分享 >flask+gunicorn的小型缓存实现

flask+gunicorn的小型缓存实现

时间:2024-02-23 15:35:02浏览次数:26  
标签:缓存 gunicorn flask manager 共享 multiprocessing 变量

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

manager = multiprocessing.Manager()#创建共享数据对象
preload_data = manager.dict()

之后对preload_data进行正常的字典操作,完美的解决了问题

标签:缓存,gunicorn,flask,manager,共享,multiprocessing,变量
From: https://www.cnblogs.com/shuchengxiang/p/18029639

相关文章

  • flask上传图片
       运行pythonmain.py 访问 http://127.0.0.1:8987/upimg  main.py#coding:utf-8fromflaskimportFlask,render_template,request,redirect,url_for,make_response,jsonifyfromwerkzeug.utilsimportsecure_filenameimporto......
  • 缓存一梭子, 程序员的快乐就是如此简单
    缓存也是一把梭项目的标配,从业多年,有事无事set/getCache来一梭子。夜深人静的时候,头脑里冷不丁会出现一些问题,我竟一时无法自圆其说。已经有cpu多级缓存、操作系统pagecache,那为什么还需要定义应用缓存?应用的多个副本缓存了同一份数据库数据,怎么保证这些多副本的缓存一致性?......
  • flask+bootstarp登录小案例
    python前后端交(web_login.py). fromflaskimportFlask,render_template,request,redirect,url_for,session,flashapp=Flask(__name__)@app.route('/login')defindex():returnrender_template('登录css.html')@app.route('/home&......
  • 若依+vue3配置菜单后设置缓存但实际上切换页签重复请求接口
    刚接触ruoyi,配置菜单时发现一个问题,配置好了,也设置了缓存,但是切换tab页签还是会重复请求接口,配置如图:仅是举例,如上图,系统管理->角色管理列表配置,路由地址是role,缓存也勾选了,但实际上第一次打开角色管理页签第一次请求了数据,再跳转其他页面,回到角色管理页签时,又一次请求了数据,实......
  • Antd的ProTable高级表格缓存列设置
    1、目的:要将ProTable组件的列设置缓存到localStorage中,你可以使用浏览器的localStorageAPI。通过监听onColumnsStateChange事件,你可以在每次列的显示和隐藏状态发生变化时,将最新的列设置保存到localStorage中。然后,在组件初始化时,从localStorage中读取之前保存的列设......
  • JetCacheUtil 删除本地及远端缓存
    publicclassJetCacheUtil{privateJetCacheUtil(){}/***删除缓存**/publicstaticbooleanremoveCache(CacheLocatecacheLocate){Assert.isTrue(StringUtils.hasText(cacheLocate.getCacheKey())&&StringUtils.hasT......
  • Flask 学习100-Flask-SocketIO 结合 xterm.js 实现网页版Xshell
    前言xterm.js是一个使用TypeScript编写的前端终端组件,可以直接在浏览器中实现一个命令行终端应用。可以实现web-terminal功能,类似于Xshell操作服务器。Flask-SocketIO快速入门与使用基础参考前面这篇https://www.cnblogs.com/yoyoketang/p/18022139前后端交互前端代码......
  • 面试官:如何实现多级缓存?
    对于高并发系统来说,有三个重要的机制来保障其高效运行,它们分别是:缓存、限流和熔断。而缓存是排在最前面也是高并发系统之所以高效运行的关键手段,那么问题来了:缓存只使用Redis就够了吗?1.冗余设计理念当然不是,不要把所有鸡蛋放到一个篮子里,成熟的系统在关键功能实现时一定会考......
  • 认识Redis:不只是缓存,还有这些厉害的功能!
    在当今数据驱动的世界中,快速存取信息成为了技术发展的关键。而在众多存储解决方案中,Redis以其独特的魅力和强大的功能,成为了开发者们的宠儿。今天,就让我们一起来认识一下Redis。一、Redis是什么,可以用来干什么?Redis,英文全称是RemoteDictionaryServer(远程字典服务),是一个开源......
  • Flask 学习99-Flask-SocketIO 开发websocket接口
    前言flask-socketio为flask应用提供了一个客户端与服务器之间低延迟的双向通讯官网地址:https://flask-socketio.readthedocs.io/en/latest/intro.html环境准备先安装flask-socketiopipinstallflask-socketio说明Flask-SocketIO与js版本客户端不匹配,二者不能正常通信。......