当前位置: 首页 > ops >正文

st.session_state 的存储机制

st.session_state 的存储机制,这个东西很多人第一次用 Streamlit 会误会它是“数据库”或者“浏览器存储”,其实不是。


1️⃣ 它存储到哪里?

  • st.session_state 是存在 Streamlit 服务器内存里的,和你启动的 Python 进程绑在一起。
  • 每个访问页面的浏览器会话(session)在服务器端会有一个独立的 session_state 对象。
  • 它不写入文件、不存数据库、不存浏览器本地存储,所以它完全依赖这个 Python 进程的内存。

2️⃣ 为什么刷新浏览器不会丢失?

  • Streamlit 的刷新(包括触发交互)并不会重启整个 Python 进程,它只是让脚本重新执行一次。
  • 只要你还是同一个浏览器 tab、同一个 session id,Streamlit 会从内存里取出之前的 st.session_state
  • 所以刷新页面(F5)或者点击按钮,变量还是能保留。

3️⃣ 什么情况下会丢失?

st.session_state 会在以下情况消失:

场景为什么会丢失
重启 Streamlit 服务器Python 进程结束,内存清空,自然丢失
不同浏览器 / 不同标签页访问新的会话 id,新的 session_state
清除浏览器 Cookie会话 id 丢了,Streamlit 认为你是新用户
长时间不活动被断开Streamlit 会回收闲置会话的内存
直接用 python script.py 运行不是在 streamlit run 模式下,没有会话管理功能

4️⃣ 重点结论

  • 它是内存级会话存储,不是持久化存储。

  • 想永久保存,就得自己写到:

    • 文件(JSON、pickle)
    • 数据库(SQLite、PostgreSQL 等)
    • 浏览器本地存储(前端方案)
http://www.xdnf.cn/news/17518.html

相关文章:

  • Docker中ES安装分词器
  • docker集群
  • USB 标准请求
  • gophis钓鱼流程
  • SSM+Dubbo+Zookeeper框架和springcloud框架,写业务的时候主要区别在哪?
  • 如何理解Tomcat、Servlet、Catanalina的关系
  • 【AI论文】R-Zero:从零数据起步的自进化推理大语言模型
  • android 换肤框架详解2-LayoutInflater源码解析
  • Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming
  • openpnp - 顶部相机环形灯光DIY
  • HTTPS 协议原理 ——4种方案
  • 如何解决 JetBrains IntelliJ IDEA 2024.2 和 2025.2 新版本区域选择问题:key is invalid
  • VBA即用型代码手册:计算选择的单词数Count Words in Selection
  • 网络资源模板--基于Android Studio 实现的手绘板App
  • 第9节 大模型分布式推理核心挑战与解决方案
  • glide缓存策略和缓存命中
  • Godot ------ 平滑拖动01
  • GAI 与 Tesla 机器人的具体联动机制
  • 基于Spring Data Elasticsearch的分布式全文检索与集群性能优化实践指南
  • 飞算 JavaAI 智能进阶:从技术工具到金融科技开发范式的革新
  • 开博尔雷电5数据线:120Gbps“闪电传输”,以Intel硬核基因从容优化数字生活
  • 跨国智能制造场景下,如何选择更可靠的SD-WAN服务商?
  • 关系型数据库:原理、演进与生态全景——从理论基石到云原生的深度巡礼
  • 【MySQL✨】服务器安装 MySQL 及配置相关操作
  • 从零构建企业级K8S:高可用集群部署指南
  • TDengine IDMP 基本功能(2.数据建模)
  • 设备 “心电图” 系统专家 —— 一二三物联网智能监测方案,让故障预测精度大幅提升
  • MQTT:Java集成MQTT
  • 【LLM】OpenAI开源GPT级模型,120B及20B参数GPT-OSS
  • 调用springboot接口返回403,问题定位及总结