支持为方法GET、MGET、Range发出可选的字段‘Latest’,

zpqajqem  于 2022-09-21  发布在  Redis
关注(0)|答案(2)|浏览(170)

我需要帮助redistimeseries巨蟒客户端。当我使用Python客户端的redislientobject.range()方法时,我无法提供可选字段[LATEST]。它是否不受python库的支持?.使用“LATEST”对我来说很重要,因为当我进行聚合时,我需要正在进行的存储桶数据(部分)。GET、MGET函数也存在同样的问题。

背景资料。:我正在存储实时库存数据(记号),并通过创建规则使用压缩(聚合)。同时,我需要在图表上绘制实时滴答数据,这意味着我需要最新的持续压缩数据。而当我使用redis cli并发出t.range key-+Latest时,我得到的是正在进行的压缩。但在Python客户端库中,我不知道这是否可能。我检查了客户端类的def range()方法,我认为可选字段‘Latest’没有实现

在Redis cli上,结果如下
TS.RANGE VWAP:TICK:MCX:CRUDEOIL22SEPFUT 1662717300000 1662791113000 LATEST

/

1.1.(整数)1662717300000
1.738244
1.1.(整数)1662717600000
1.724450

如果没有最新消息,
TS.RANGE VWAP:5分钟:MCX:CRUDEOIL22SEPFUT 1662717300000 1662791113000

1.1.(整数)1662717300000
1.738244

nfs0ujit

nfs0ujit1#

您使用的是最新的redis-py(4.4.0rc1)吗?

https://github.com/redis/redis-py/pull/2296

https://github.com/redis/redis-py/releases/tag/v4.4.0rc1

请注意,RedisTimeSeries1.8仍然是一个候选版本。

ymzxtsji

ymzxtsji2#

我已经将客户机子类化并修改了GET方法,如下所示(实际上将GET方法重命名为myget而不是重写)

类myRedisTSClient(客户端):definit(self,conn=NONE,*args,**kwargs):Super().init(conn,*args,**kwargs)

  1. def myget(self,key,latest=False) :
  2. """Gets the last sample of ``key``"""
  3. if latest :
  4. paramLatest = 'LATEST'
  5. logging.info(f"COMMAND TO BE SET : {self.GET_CMD} {key} {paramLatest}")
  6. return self.redis.execute_command(self.GET_CMD, key, paramLatest)
  7. else :
  8. return self.redis.execute_command(self.GET_CMD, key)

相关问题