使用redis存储股股票数据及近一个月的行情数据

news2024/10/21 15:49:48

使用redis存储股票数据及近一个月的行情数据

  • 性能瓶颈
  • redis的使用
  • odoo连接redis
  • 股票数据的读写
  • 结论

性能瓶颈

股票行情对数据的实时性是有要求的,在数据同步时如果都从数据库中查询数据,对于股票行情数据来说是有些慢了,因此我们使用redis来存储常用数据:股票数据及近一个月的行情数据

redis的使用

https://www.runoob.com/redis/redis-install.html
参考菜鸟教程就可以完成在windows(开发环境)及linux(生产环境)的安装和使用。

odoo连接redis

在这里插入图片描述

from redis import Redis

class ResConfigSettings(models.TransientModel):

    redis_host = fields.Char(string="Redis Host", default="127.0.0.1")
    redis_port = fields.Integer(string="Redis Port", default=6379)
    redis_db = fields.Integer(string="Redis DB", default=10)
    redis_password = fields.Char(string="Redis Password", default="123456")
    redis_username = fields.Char(string="Redis Username", default='redis')

    def get_redis_conn(self):
        """
        获取redis连接
        """
        config_id = self.env['res.config.settings'].sudo().search([], limit=1, order='id desc')
        if (not config_id.redis_host or not config_id.redis_port or not config_id.redis_password
                or not config_id.redis_db):
            return None
        redis = Redis(host=config_id.redis_host, port=config_id.redis_port, password=config_id.redis_password,
                      db=config_id.redis_db)
        return redis

股票数据的读写

写股票数据。

    def btn_update_equity_stock_redis(self):
        """
        测试redis
        """
        redis_conn = self.env['res.config.settings'].get_redis_conn()
        stock_ids = self.env['equity.stock'].search([])
        for stock_id in stock_ids:
            stock_vals = {
                'id': stock_id.id,
                'market_id': stock_id.market_id,
            }
            redis_conn.set(stock_id.code, json.dumps(stock_vals))

读股票数据

redis_conn = self.env['res.config.settings'].get_redis_conn()
stock_vals = redis_conn.get(stock_data['code'])

结论

当需要平凡查询数据库或者数据库的记录非常多时,使用redis可以带来比较好的性能体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频网站开发:Spring Boot框架的高效实现

5 系统实现 5.1用户信息管理 管理员管理用户信息,可以添加,修改,删除用户信息信息。下图就是用户信息管理页面。 图5.1 用户信息管理页面 5.2 视频分享管理 管理员管理视频分享,可以添加,修改,删除视频分…

HCIP-HarmonyOS Application Developer 习题(十五)

(判断)1、在HarmonyOs中发布带权限公共事件,发布者首先要在config.json中申请所需的权限。 答案:正确 分析:发布携带权限的公共事件:构造CommonEventPublishInfo对象,设置订阅者的权限。 &#…

基于springboot vue的音乐播放系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

【Postman】如何导出导入数据文件?Postman链接分享?

方式一:postman分享链接 1.1 导出 1.2 导入 1.3 导入完成后删除分享的链接 方式二:postman导出导入json 2.1 导出 2.2 post导入json数据

智慧监管:EasyCVR视频汇聚智能分析平台助力有限空间作业实现全天候可视化监控

随着工业化和城市化进程的加快,有限空间作业(如地下管道、储罐、隧道等)在各类企事业单位中日益频繁。然而,这类作业环境复杂、危险系数高,对作业人员的安全管理和实时监控提出了严峻挑战。为了保障有限空间作业的安全…

基于Java的茶叶商城设计与实现(源码+定制+开发)茶叶电商系统开发、茶叶电商平台开发、茶叶在线销售平台设计与开发

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

cocos Creator + fairyGUI 快速入门

版本 Creator 3.8.x,FairyGUI 2022 大部分内容来自 https://en.fairygui.com/docs/sdk/creator 1.新建cocos项目,根目录运行 npm install --save fairygui-cc 引入 fairyGUI库 2.assets目录之外新建fairyGUI项目 3.fairyGUI中编辑UI 完成后发布到Creato…

细数RAG的12个痛点,英伟达高级架构师亲授解决方案

检索增强式生成(RAG)是一种使用检索提升语言模型的技术。具体来说,就是在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程。这种技术能极大提升内容的准确性和相关性&#x…

野外便携定位终端|北斗三代短报文通信终端|移动通信终端

QM200B北斗三号便携终端是一款面对野外环境的北斗三代便携设备,具有低功耗、体积小、重量轻等特点。该设备不仅集成了北斗三代区域短电文通信、北斗三代定位功能、移动通信功能,同时具有语音对讲功能,配有液晶屏和功能按键,可在海…

一文彻底弄清Redis的布隆过滤器

布隆过滤器(Bloom Filter)是一种空间效率极高的数据结构,用于快速判断一个元素是否在集合中。它能够节省大量内存,但它有一个特点:可能存在误判,即可能会认为某个元素存在于集合中,但实际上不存…

说了很久的建筑转大模型,也不过是想在职场完成赎身

问:为什么从规划转行到大模型? 1、房子卖不掉了,城镇化进入存量时代,发展的蛋糕有限,规划行业式微;而且生态规划更多是保护性规划,不是发展性规划,地方政府的驱动力不足。 2、智能…

ArchLinux VSCode 1.94.2无法安装or更新解决办法

此方法参考了这篇博客https://www.debugpoint.com/failed-connect-raw-githubusercontent-com-port-443/#google_vignette 某一次paru后,一直报错503什么的,在archlinux官网看到pacman安装的是个Open VSX版本的,是Arch官方的版本,…

【记录】VSCode|自用设置项

文章目录 1 基础配置1.1 自动保存1.2 编辑区自动换行1.3 选项卡换行1.4 空格代替制表符1.5 开启滚轮缩放 2 进阶设置2.1 选项卡不自我覆盖2.2 选项卡限制宽度2.3 选项卡组限制高度2.4 字体设置2.5 字体加粗2.6 侧边栏2.7 沉浸式代码模式 Zen Mode2.8 设置 Zen 模式的选项卡组 3…

Vxe UI vue vxe-table grid 如何滚动、定位到指定行或列

Vxe UI vue vxe-table vxe-grid 在表格中有时候需要对数据会列进行操作。可以会定位到某一行或某一列,vxe-table 中提供了丰富的函数式 API,可以轻松对行与列进行各种的灵活的操作。 定位到指定行与列 通过调用 scrollColumn(columnOrField) 方法&…

【Python】图形用户界面

在Python中,开发图形用户界面(GUI)的工具包有许多种,常用的包括: Tkinter:Python的标准GUI库,作为Python内置的一部分,简单易用,适用于轻量级应用。PyQt/PySide&#xf…

探索面向对象编程的核心:类、对象与封装

探索面向对象编程的核心:类、对象与封装 在学习Java编程时,面向对象编程(OOP)是一个非常重要的核心概念。今天我们将深入探讨其中最基本、但却非常重要的组成部分:类和对象,以及它们是如何通过封装来实现数…

全网免费的文献调研方法以及获取外网最新论文、代码和翻译pdf论文的方法(适用于硕士、博士、科研)

1. 文献调研 学术搜索引擎(十分推荐前三个,超有用):使用 Google Scholar(https://scholar.google.com/)(https://scholar.google.com.tw/)(巨人学术搜索‬‬)、(三个都可以,镜像网站) arXiv(https://arxiv.org/)、&am…

企业架构系列(21)ArchiMate建模ADM阶段A:架构愿景

从本篇开始,将通过6篇文章逐一介绍如何使用 ArchiMate 的特定视角来创建与 TOGAF 架构开发方法相关的图形化模型或图表(即,ADM中的图形制品,Graphical Artifacts)。这些制品让利益相关者以可视化的方式来理解架构内容&…

vscode中每个打开的文件都显示在一个单独的标签页中

版本:1.94 实现步骤: 1、打开设置 File-》Preferences-》Settings 2、具体设置 2.1、在配置中搜索 workbench.editor.showTabs 设置为multiple。 2.2、在配置中搜索 workbench.editor.enablePreview 取消勾选。 根据这个功能的说明,在…