redisbench-admin 0.10.28__py3-none-any.whl → 0.11.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- redisbench_admin/compare/compare.py +0 -1
- redisbench_admin/run/common.py +19 -4
- redisbench_admin/run/run.py +19 -0
- redisbench_admin/run_local/run_local.py +1 -3
- redisbench_admin/utils/benchmark_config.py +7 -6
- redisbench_admin/utils/remote.py +20 -1
- {redisbench_admin-0.10.28.dist-info → redisbench_admin-0.11.0.dist-info}/METADATA +5 -7
- {redisbench_admin-0.10.28.dist-info → redisbench_admin-0.11.0.dist-info}/RECORD +11 -11
- {redisbench_admin-0.10.28.dist-info → redisbench_admin-0.11.0.dist-info}/LICENSE +0 -0
- {redisbench_admin-0.10.28.dist-info → redisbench_admin-0.11.0.dist-info}/WHEEL +0 -0
- {redisbench_admin-0.10.28.dist-info → redisbench_admin-0.11.0.dist-info}/entry_points.txt +0 -0
|
@@ -722,7 +722,6 @@ def from_rts_to_regression_table(
|
|
|
722
722
|
total_comparison_points = 0
|
|
723
723
|
noise_waterline = 3
|
|
724
724
|
progress = tqdm(unit="benchmark time-series", total=len(test_names))
|
|
725
|
-
at_comparison = 0
|
|
726
725
|
for test_name in test_names:
|
|
727
726
|
multi_value_baseline = check_multi_value_filter(baseline_str)
|
|
728
727
|
multi_value_comparison = check_multi_value_filter(comparison_str)
|
redisbench_admin/run/common.py
CHANGED
|
@@ -489,15 +489,30 @@ def extract_test_feasible_setups(
|
|
|
489
489
|
if setup_name == setup["name"]:
|
|
490
490
|
feasible_setups_map[setup_name] = setup
|
|
491
491
|
if len(feasible_setups_map.keys()) == 0 and backwards_compatible:
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
492
|
+
setup_name = "oss-standalone"
|
|
493
|
+
setup_type = "oss-standalone"
|
|
494
|
+
OVERRIDE_SETUP_TYPE = os.getenv("OVERRIDE_SETUP_TYPE", None)
|
|
495
|
+
if OVERRIDE_SETUP_TYPE is not None:
|
|
496
|
+
logging.info(
|
|
497
|
+
f"Overriding SETUP_TYPE with {OVERRIDE_SETUP_TYPE} (original value was {setup_type})"
|
|
498
|
+
)
|
|
499
|
+
setup_type = OVERRIDE_SETUP_TYPE
|
|
500
|
+
OVERRIDE_SETUP_NAME = os.getenv("OVERRIDE_SETUP_NAME", None)
|
|
501
|
+
if OVERRIDE_SETUP_NAME is not None:
|
|
502
|
+
logging.info(
|
|
503
|
+
f"Overriding SETUP_NAME with {OVERRIDE_SETUP_NAME} (original value was {setup_name})"
|
|
504
|
+
)
|
|
505
|
+
setup_name = OVERRIDE_SETUP_NAME
|
|
506
|
+
|
|
507
|
+
feasible_setups_map[setup_name] = {
|
|
508
|
+
"name": setup_name,
|
|
509
|
+
"type": setup_type,
|
|
495
510
|
"redis_topology": {"primaries": 1, "replicas": 0},
|
|
496
511
|
"resources": {"requests": {"cpu": "1000m"}, "limits": {"cpu": "2000m"}},
|
|
497
512
|
}
|
|
498
513
|
logging.info(
|
|
499
514
|
"Using a backwards compatible 'oss-standalone' setup, with settings: {}".format(
|
|
500
|
-
feasible_setups_map[
|
|
515
|
+
feasible_setups_map[setup_name]
|
|
501
516
|
)
|
|
502
517
|
)
|
|
503
518
|
|
redisbench_admin/run/run.py
CHANGED
|
@@ -30,6 +30,20 @@ def calculate_client_tool_duration_and_check(
|
|
|
30
30
|
return benchmark_duration_seconds
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
def merge_dicts(dict1, dict2):
|
|
34
|
+
result = dict1.copy() # Start with dict1's keys and values
|
|
35
|
+
for key, value in dict2.items():
|
|
36
|
+
if key in result:
|
|
37
|
+
if isinstance(result[key], dict) and isinstance(value, dict):
|
|
38
|
+
# Recursively merge nested dictionaries
|
|
39
|
+
result[key] = merge_dicts(result[key], value)
|
|
40
|
+
# If it's not a dict, we keep the value from dict1 (result)
|
|
41
|
+
else:
|
|
42
|
+
result[key] = value
|
|
43
|
+
print(f"merging dict1 {dict1} with with dict2 {dict2}. final {result}")
|
|
44
|
+
return result
|
|
45
|
+
|
|
46
|
+
|
|
33
47
|
def define_benchmark_plan(benchmark_definitions, default_specs):
|
|
34
48
|
benchmark_runs_plan = {}
|
|
35
49
|
for test_name, benchmark_config in benchmark_definitions.items():
|
|
@@ -80,6 +94,11 @@ def define_benchmark_plan(benchmark_definitions, default_specs):
|
|
|
80
94
|
)
|
|
81
95
|
)
|
|
82
96
|
else:
|
|
97
|
+
# add benchmark
|
|
98
|
+
if "dbconfig" in setup_settings:
|
|
99
|
+
benchmark_config["dbconfig"] = merge_dicts(
|
|
100
|
+
benchmark_config["dbconfig"], setup_settings["dbconfig"]
|
|
101
|
+
)
|
|
83
102
|
benchmark_runs_plan[benchmark_type][dataset_name][setup_name][
|
|
84
103
|
"benchmarks"
|
|
85
104
|
][test_name] = benchmark_config
|
|
@@ -65,9 +65,7 @@ from redisbench_admin.utils.benchmark_config import (
|
|
|
65
65
|
from redisbench_admin.utils.local import (
|
|
66
66
|
get_local_run_full_filename,
|
|
67
67
|
)
|
|
68
|
-
|
|
69
|
-
extract_git_vars,
|
|
70
|
-
)
|
|
68
|
+
|
|
71
69
|
from redisbench_admin.utils.results import post_process_benchmark_results
|
|
72
70
|
|
|
73
71
|
import threading
|
|
@@ -17,6 +17,8 @@ from redisbench_admin.utils.remote import (
|
|
|
17
17
|
fetch_remote_id_from_config,
|
|
18
18
|
)
|
|
19
19
|
|
|
20
|
+
CONFIG_PARAMS_KEY = "module-configuration-parameters"
|
|
21
|
+
|
|
20
22
|
|
|
21
23
|
def parse_exporter_metrics_definition(
|
|
22
24
|
benchmark_config: dict, configkey: str = "redistimeseries"
|
|
@@ -226,6 +228,7 @@ def merge_default_and_specific_properties_dict_type(
|
|
|
226
228
|
|
|
227
229
|
|
|
228
230
|
def extract_redis_dbconfig_parameters(benchmark_config, dbconfig_keyname):
|
|
231
|
+
|
|
229
232
|
redis_configuration_parameters = {}
|
|
230
233
|
modules_configuration_parameters_map = {}
|
|
231
234
|
dataset_load_timeout_secs = 120
|
|
@@ -235,10 +238,8 @@ def extract_redis_dbconfig_parameters(benchmark_config, dbconfig_keyname):
|
|
|
235
238
|
dbconfig_present = True
|
|
236
239
|
if type(benchmark_config[dbconfig_keyname]) == list:
|
|
237
240
|
for k in benchmark_config[dbconfig_keyname]:
|
|
238
|
-
if
|
|
239
|
-
modules_configuration_parameters_map = k[
|
|
240
|
-
"module-configuration-parameters"
|
|
241
|
-
]
|
|
241
|
+
if CONFIG_PARAMS_KEY in k:
|
|
242
|
+
modules_configuration_parameters_map = k[CONFIG_PARAMS_KEY]
|
|
242
243
|
if "configuration-parameters" in k:
|
|
243
244
|
cp = k["configuration-parameters"]
|
|
244
245
|
for item in cp:
|
|
@@ -249,10 +250,10 @@ def extract_redis_dbconfig_parameters(benchmark_config, dbconfig_keyname):
|
|
|
249
250
|
if "dataset_name" in k:
|
|
250
251
|
dataset_name = k["dataset_name"]
|
|
251
252
|
if type(benchmark_config[dbconfig_keyname]) == dict:
|
|
252
|
-
if
|
|
253
|
+
if CONFIG_PARAMS_KEY in benchmark_config[dbconfig_keyname]:
|
|
253
254
|
modules_configuration_parameters_map = benchmark_config[
|
|
254
255
|
dbconfig_keyname
|
|
255
|
-
][
|
|
256
|
+
][CONFIG_PARAMS_KEY]
|
|
256
257
|
if "configuration-parameters" in benchmark_config[dbconfig_keyname]:
|
|
257
258
|
cp = benchmark_config[dbconfig_keyname]["configuration-parameters"]
|
|
258
259
|
for k, v in cp.items():
|
redisbench_admin/utils/remote.py
CHANGED
|
@@ -638,6 +638,14 @@ def push_data_to_redistimeseries(rts, time_series_dict: dict, expire_msecs=0):
|
|
|
638
638
|
|
|
639
639
|
def exporter_create_ts(rts, time_series, timeseries_name):
|
|
640
640
|
updated_create = False
|
|
641
|
+
final_labels = {}
|
|
642
|
+
for label_name, value in time_series["labels"].items():
|
|
643
|
+
if value is not None:
|
|
644
|
+
final_labels[label_name] = value
|
|
645
|
+
else:
|
|
646
|
+
logging.warning(f"The label {label_name} value was None. skipping it...")
|
|
647
|
+
|
|
648
|
+
time_series["labels"] = final_labels
|
|
641
649
|
try:
|
|
642
650
|
if rts.exists(timeseries_name):
|
|
643
651
|
updated_create = check_rts_labels(rts, time_series, timeseries_name)
|
|
@@ -647,11 +655,22 @@ def exporter_create_ts(rts, time_series, timeseries_name):
|
|
|
647
655
|
timeseries_name, time_series["labels"]
|
|
648
656
|
)
|
|
649
657
|
)
|
|
658
|
+
|
|
650
659
|
rts.ts().create(
|
|
651
660
|
timeseries_name, labels=time_series["labels"], chunk_size=128
|
|
652
661
|
)
|
|
653
662
|
updated_create = True
|
|
654
|
-
|
|
663
|
+
except redis.exceptions.DataError as e:
|
|
664
|
+
logging.error(
|
|
665
|
+
"While creating timeseries named {} with the following labels: {} this error ocurred: {}".format(
|
|
666
|
+
timeseries_name, time_series["labels"], e.__str__()
|
|
667
|
+
)
|
|
668
|
+
)
|
|
669
|
+
raise Exception(
|
|
670
|
+
"While creating timeseries named {} with the following labels: {} this error ocurred: {}".format(
|
|
671
|
+
timeseries_name, time_series["labels"], e.__str__()
|
|
672
|
+
)
|
|
673
|
+
)
|
|
655
674
|
except redis.exceptions.ResponseError as e:
|
|
656
675
|
if "already exists" in e.__str__():
|
|
657
676
|
updated_create = check_rts_labels(rts, time_series, timeseries_name)
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: redisbench-admin
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... ).
|
|
5
5
|
Author: filipecosta90
|
|
6
6
|
Author-email: filipecosta.90@gmail.com
|
|
7
|
-
Requires-Python: >=3.
|
|
7
|
+
Requires-Python: >=3.10.0,<4.0.0
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
9
|
Classifier: Programming Language :: Python :: 3.10
|
|
13
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
11
|
Requires-Dist: Flask (>=2.0.1,<3.0.0)
|
|
@@ -23,7 +20,8 @@ Requires-Dist: flask-restx (>=0.5.1,<0.6.0)
|
|
|
23
20
|
Requires-Dist: humanize (>=2.4.0,<3.0.0)
|
|
24
21
|
Requires-Dist: jsonpath_ng (>=1.5.2,<2.0.0)
|
|
25
22
|
Requires-Dist: matplotlib (>=3.1.2,<4.0.0)
|
|
26
|
-
Requires-Dist:
|
|
23
|
+
Requires-Dist: numpy (>=2.0.0,<3.0.0)
|
|
24
|
+
Requires-Dist: pandas (>=2.1.2,<3.0.0)
|
|
27
25
|
Requires-Dist: paramiko (>=2.7.2,<3.0.0)
|
|
28
26
|
Requires-Dist: psutil (>=5.6.6,<6.0.0)
|
|
29
27
|
Requires-Dist: pyWorkFlow (>=0.0.2,<0.0.3)
|
|
@@ -33,7 +31,7 @@ Requires-Dist: pysftp (>=0.2.9,<0.3.0)
|
|
|
33
31
|
Requires-Dist: pytablewriter[html] (>=0.64.1,<0.65.0)
|
|
34
32
|
Requires-Dist: python_terraform (>=0.10.1,<0.11.0)
|
|
35
33
|
Requires-Dist: redis (>=4.2.2,<5.0.0)
|
|
36
|
-
Requires-Dist: requests (>=2.
|
|
34
|
+
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
|
37
35
|
Requires-Dist: slack-bolt (>=1.13.0,<2.0.0)
|
|
38
36
|
Requires-Dist: slack-sdk (>=3.15.2,<4.0.0)
|
|
39
37
|
Requires-Dist: sshtunnel (>=0.4.0,<0.5.0)
|
|
@@ -4,7 +4,7 @@ redisbench_admin/commands/__init__.py,sha256=mzVrEtqefFdopyzR-W6xx3How95dyZfToGK
|
|
|
4
4
|
redisbench_admin/commands/commands.json.py,sha256=mzVrEtqefFdopyzR-W6xx3How95dyZfToGKm1-_YzeY,95
|
|
5
5
|
redisbench_admin/compare/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
|
|
6
6
|
redisbench_admin/compare/args.py,sha256=10zbiT8roeTGnAubvoVFZTbJNbVxuRaRPtCKjxV8iNE,5226
|
|
7
|
-
redisbench_admin/compare/compare.py,sha256
|
|
7
|
+
redisbench_admin/compare/compare.py,sha256=ANCm4kKCR8IBBoeBRgsPOOYW2s5qJV1QVIIPcY-WNUk,37725
|
|
8
8
|
redisbench_admin/deploy/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
|
|
9
9
|
redisbench_admin/deploy/args.py,sha256=neLUcQqI__HkJItkQg2C293hl5g3yHG40t171r7-E5Y,1732
|
|
10
10
|
redisbench_admin/deploy/deploy.py,sha256=c1srxDMaUHuyh6wGdgLqzTz3ljZFtGqiumtAmguVyuk,3791
|
|
@@ -176,7 +176,7 @@ redisbench_admin/run/ann/pkg/test/test-jaccard.py,sha256=oIhaQCQKrQokwv3fvgLSwPl
|
|
|
176
176
|
redisbench_admin/run/ann/pkg/test/test-metrics.py,sha256=vJdS8Kuk8bAnpB65Uqb-9rUUI35XrHwaO3cNwKX5gxc,3057
|
|
177
177
|
redisbench_admin/run/args.py,sha256=Sspv4eusQs9HMVMIyv_hB9vQ3S_s0lHYGAL1gPb2WGM,7864
|
|
178
178
|
redisbench_admin/run/cluster.py,sha256=QuptSW-IhdyFIoQ3hzY613jtQWxBrVIlgc8OarcEK20,6072
|
|
179
|
-
redisbench_admin/run/common.py,sha256=
|
|
179
|
+
redisbench_admin/run/common.py,sha256=DnGRG4wC04pU2CK4mIWG8VX7JuYFEwAL3TZvPa-Lu8M,26707
|
|
180
180
|
redisbench_admin/run/ftsb/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
|
|
181
181
|
redisbench_admin/run/ftsb/ftsb.py,sha256=plP-yxjMvvy-gITlXpuXJcyrPHfDoYYI8JRwTe5kK4M,2388
|
|
182
182
|
redisbench_admin/run/git.py,sha256=6UYGcTN0MPzf4QDVoJnFkou0yZasLF6jLG7f0zoySq8,3064
|
|
@@ -190,7 +190,7 @@ redisbench_admin/run/redis_benchmark/redis_benchmark.py,sha256=e-Az2uTlt3z2W4uzl
|
|
|
190
190
|
redisbench_admin/run/redisgraph_benchmark_go/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
|
|
191
191
|
redisbench_admin/run/redisgraph_benchmark_go/redisgraph_benchmark_go.py,sha256=DijIoWr73e2t7Zy-UmODzC51IjUh6hH5I0LaPRJW4Vk,2241
|
|
192
192
|
redisbench_admin/run/redistimeseries.py,sha256=x3PA7QoHXu53zs5v0ekK2sVmUnA9_ZF2JxgCDf1Mui4,21331
|
|
193
|
-
redisbench_admin/run/run.py,sha256=
|
|
193
|
+
redisbench_admin/run/run.py,sha256=QmsabKX1tgoHvAUlhUWEsvfjHJaZGVU-LVW3SKAtk2M,4274
|
|
194
194
|
redisbench_admin/run/s3.py,sha256=pXQXZ1rrwDCWeBegGR4aKzbKqWWwMrmqvIjFxEB3bh4,442
|
|
195
195
|
redisbench_admin/run/ssh.py,sha256=gRW6ROoTKlaxLKhS5tM-Ejjd6zk2iO1KN9dzBzw7GOk,2835
|
|
196
196
|
redisbench_admin/run/tsbs_run_queries_redistimeseries/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
|
|
@@ -209,7 +209,7 @@ redisbench_admin/run_local/args.py,sha256=VkIDvdTW-cRl-ncOkcK8-8MdCbq-qyipGQFugh
|
|
|
209
209
|
redisbench_admin/run_local/local_client.py,sha256=gwawMDOBrf7m--uyxu8kMZC5LBiLjbUBSKvzVOdOAas,124
|
|
210
210
|
redisbench_admin/run_local/local_db.py,sha256=Xh7xyZaSyhmRXKyMsbKqO9aLUikf-EXGha3K1h9yL2M,7396
|
|
211
211
|
redisbench_admin/run_local/local_helpers.py,sha256=JyqLW2-Sbm35BXjxxfOB1yK7ADdLfcVrq08NLNdIwac,7026
|
|
212
|
-
redisbench_admin/run_local/run_local.py,sha256=
|
|
212
|
+
redisbench_admin/run_local/run_local.py,sha256=tueVqiqApQx2b0Dq6GJ84jr7WYRVKvJ7r2QCzlfY3aw,30870
|
|
213
213
|
redisbench_admin/run_remote/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
|
|
214
214
|
redisbench_admin/run_remote/args.py,sha256=vhV87avBwXL8c2QLqrAkIyWD53MYhN06F-3wRv3l5xE,3829
|
|
215
215
|
redisbench_admin/run_remote/consts.py,sha256=bCMkwyeBD-EmOpoHKni7LjWy5WuaxGJhGhqpi4AL0RQ,386
|
|
@@ -224,19 +224,19 @@ redisbench_admin/run_remote/run_remote.py,sha256=3DD5vHz3CIP7Zk9OFRBlzNFjAo_ua-c
|
|
|
224
224
|
redisbench_admin/run_remote/standalone.py,sha256=vWmm0CdFtrasy-_1BDKO7I_gVPBjjiypv94_Fq2Sm7o,6660
|
|
225
225
|
redisbench_admin/run_remote/terraform.py,sha256=zD2gGuOmnTex6Dt2lhdAtNn21iL6sykPPXI10jJaim4,3945
|
|
226
226
|
redisbench_admin/utils/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
|
|
227
|
-
redisbench_admin/utils/benchmark_config.py,sha256=
|
|
227
|
+
redisbench_admin/utils/benchmark_config.py,sha256=WDSCnfDQt753caZ-3pyXbpIaVcEoOi8NAb0FJ5rHH7k,21237
|
|
228
228
|
redisbench_admin/utils/local.py,sha256=zUvyVI9LZMT3qyxs1pO3mXL6Bt_1z9EZUGppaRcWNRA,3890
|
|
229
229
|
redisbench_admin/utils/redisearch.py,sha256=lchUEzpt0zB1rHwlDlw9LLifAnxFWcLP-PePw7TjL-0,1602
|
|
230
230
|
redisbench_admin/utils/redisgraph_benchmark_go.py,sha256=os7EJt6kBxsFJLKkSoANbjMT7-cEq4-Ns-49alk2Tf8,2048
|
|
231
|
-
redisbench_admin/utils/remote.py,sha256=
|
|
231
|
+
redisbench_admin/utils/remote.py,sha256=fVcFRmJcqVtado_fae_Idq_QQRTtCixMlT-hdH3zsgE,38928
|
|
232
232
|
redisbench_admin/utils/results.py,sha256=uKk3uNJ--bSXlUj_HGQ2OaV6MVqmXJVM8xTzFV6EOw4,3267
|
|
233
233
|
redisbench_admin/utils/ssh.py,sha256=QW4AwlocMHJt05QMdN_4f8WeDmxiEwR80ny8VBThq6k,6533
|
|
234
234
|
redisbench_admin/utils/utils.py,sha256=FLDjhGkW0PWwcu_nlTnIW6aZtHzJGz4LIwvu1CpCajw,14160
|
|
235
235
|
redisbench_admin/watchdog/__init__.py,sha256=cD7zfXt0VEmy0b7452HvcAxX_9kVj6Vm213yNdUHP20,95
|
|
236
236
|
redisbench_admin/watchdog/args.py,sha256=nKsG1G6ATOZlAMHMtT9u3kXxduKCbejSZ5x8oB_ynZ8,1312
|
|
237
237
|
redisbench_admin/watchdog/watchdog.py,sha256=jFGtm5ktjKuXKWvH7lnmf3pp-ch1WBJUOomXILJMDAg,6158
|
|
238
|
-
redisbench_admin-0.
|
|
239
|
-
redisbench_admin-0.
|
|
240
|
-
redisbench_admin-0.
|
|
241
|
-
redisbench_admin-0.
|
|
242
|
-
redisbench_admin-0.
|
|
238
|
+
redisbench_admin-0.11.0.dist-info/LICENSE,sha256=AAMtfs82zOOvmG68vILivm6lxi2rcOlGObmA8jzxQvw,10768
|
|
239
|
+
redisbench_admin-0.11.0.dist-info/entry_points.txt,sha256=UUawXk_AS-PlieKJ1QxPQXGsRLb6OW_F0MtmA1W0KE8,113
|
|
240
|
+
redisbench_admin-0.11.0.dist-info/WHEEL,sha256=vVCvjcmxuUltf8cYhJ0sJMRDLr1XsPuxEId8YDzbyCY,88
|
|
241
|
+
redisbench_admin-0.11.0.dist-info/METADATA,sha256=0wjKQ0FTYoIMTVzJF2mYxOpiRY3GS144AHcSSYSb6f4,5228
|
|
242
|
+
redisbench_admin-0.11.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|