11import six
2- import redis
3- from redis import Redis , RedisError
2+ from redis import Redis
3+ from redis . client import Pipeline
44from redis .client import bool_ok
5- from redis .client import int_or_none
6- from redis ._compat import (long , nativestr )
7- from redis .exceptions import DataError
5+ from redis ._compat import nativestr
86
97class TSInfo (object ):
108 rules = []
119 labels = []
1210 sourceKey = None
1311 chunk_count = None
14- last_time_stamp = None
12+ memory_usage = None
13+ total_samples = None
1514 retention_msecs = None
15+ last_time_stamp = None
16+ first_time_stamp = None
1617 max_samples_per_chunk = None
1718
1819 def __init__ (self , args ):
1920 response = dict (zip (map (nativestr , args [::2 ]), args [1 ::2 ]))
2021 self .rules = response ['rules' ]
2122 self .sourceKey = response ['sourceKey' ]
2223 self .chunkCount = response ['chunkCount' ]
24+ self .memory_usage = response ['memoryUsage' ]
25+ self .total_samples = response ['totalSamples' ]
2326 self .labels = list_to_dict (response ['labels' ])
24- self .lastTimeStamp = response ['lastTimestamp' ]
2527 self .retention_msecs = response ['retentionTime' ]
28+ self .lastTimeStamp = response ['lastTimestamp' ]
29+ self .first_time_stamp = response ['firstTimestamp' ]
2630 self .maxSamplesPerChunk = response ['maxSamplesPerChunk' ]
2731
2832def list_to_dict (aList ):
@@ -262,3 +266,22 @@ def info(self, key):
262266 def queryindex (self , filters ):
263267 """Get all the keys matching the ``filter`` list."""
264268 return self .execute_command (self .QUERYINDEX_CMD , * filters )
269+
270+ def pipeline (self , transaction = True , shard_hint = None ):
271+ """
272+ Return a new pipeline object that can queue multiple commands for
273+ later execution. ``transaction`` indicates whether all commands
274+ should be executed atomically. Apart from making a group of operations
275+ atomic, pipelines are useful for reducing the back-and-forth overhead
276+ between the client and server.
277+ Overridden in order to provide the right client through the pipeline.
278+ """
279+ p = Pipeline (
280+ connection_pool = self .connection_pool ,
281+ response_callbacks = self .response_callbacks ,
282+ transaction = transaction ,
283+ shard_hint = shard_hint )
284+ return p
285+
286+ class Pipeline (Pipeline , Client ):
287+ "Pipeline for Redis TimeSeries Client"
0 commit comments