我需要redistimeseries客户端的帮助。当我使用python的redisclientobject.range()方法时,我无法提供最新的可选字段。python库不支持它吗?使用“最新”对我来说至关重要,因为当我进行聚合时,我需要正在进行的桶数据(部分)。get,mget函数也存在同样的问题。
背景。*我存储实时库存数据(蜱),并通过创建规则使用压缩(聚合)。同时,我需要绘制图表上的实时刻度数据,这意味着我需要最新的正在进行的压缩数据。然而,当我使用redis并发出ts.range键+最新消息时,我会得到正在进行的压缩。但是在Python客户端库中,我不知道是否可能。我已经检查了Client类的def range()方法,并且我认为可选字段'Latest‘没有实现。
在下面的红层上是结果。
TS.RANGE VWAP:ticks:MCX:CRUDEOIL22SEPFUT 1662717300000 1662791113000最新
/
如果没有最新消息,
TS.RANGE VWAP:5 5min:MCX:CRUDEOIL22SEPFUT 1662717300000 1662791113000
发布于 2022-09-09 15:07:47
您正在使用最新的redis-py (4.4.0rc1)吗?
https://github.com/redis/redis-py/pull/2296
https://github.com/redis/redis-py/releases/tag/v4.4.0rc1
请注意,RedisTimeSeries 1.8仍然是发行版的候选版本。
发布于 2022-09-09 12:55:47
我已经对客户机进行了子类化,并修改了get方法如下(实际上将get方法重命名为myget而不是重写)
类myRedisTSClient(客户端):init(self,conn=None,*args,**kwargs): *args,**kwargs
def myget(self,key,latest=False) :
"""Gets the last sample of ``key``"""
if latest :
paramLatest = 'LATEST'
logging.info(f"COMMAND TO BE SET : {self.GET_CMD} {key} {paramLatest}")
return self.redis.execute_command(self.GET_CMD, key, paramLatest)
else :
return self.redis.execute_command(self.GET_CMD, key)https://stackoverflow.com/questions/73661513
复制相似问题