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

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

使用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.kler.cn/a/349236.html

相关文章:

  • 【深度学习系统】Lecture 2 - ML Refresher / Softmax Regression
  • 偷啥的都有!
  • 基于JAVA+SpringBoot+Vue的旅游管理系统
  • kubernetes自定义pod启动用户
  • Android TextView实现一串文字特定几个字改变颜色
  • 浅谈Java之MBus通信
  • std::function的概念和使用方法
  • 硬盘文件误删:原因、恢复方案与预防措施
  • “探索端智能,加速大模型应用” 火山引擎边缘智能x扣子技术沙龙圆满落幕!
  • 机器人研究不同模态之间的融合方法
  • OpenAI Canvas:提升编程与写作效率的全新工作界面
  • Shiro 认证(Authentication)
  • 实战篇:(二)React 创建项目并连接 MySQL 后台的实战教程
  • STM32的SPI技术介绍
  • kubernetes中的微服务
  • 开启您的财富增值之路
  • B3622 枚举子集
  • 如何查看GB28181流媒体平台LiveGBS中对GB28181实时视频数据统计的负载信息
  • js 去重的方法
  • 一篇文章带你快速了解linux中关于信号的核心内容