#!/usr/bin/env python3 import argparse import random import string import redis as rclient import uuid import time def fill_set(args, redis: rclient.Redis): for j in range(args.num): token = uuid.uuid1().hex # print(token) key = f"USER_OTP:{token}" arr = [] for i in range(30): otp = "".join(random.choices(string.ascii_uppercase + string.digits, k=12)) arr.append(otp) redis.execute_command("sadd", key, *arr) def fill_hset(args, redis): for j in range(args.num): token = uuid.uuid1().hex key = f"USER_INFO:{token}" phone = f"555-999-{j}" user_id = "user" * 5 + f"-{j}" redis.hset(key, "phone", phone) redis.hset(key, "user_id", user_id) redis.hset(key, "login_time", time.time()) def main(): parser = argparse.ArgumentParser(description="fill hset entities") parser.add_argument("-p", type=int, help="redis port", dest="port", default=6380) parser.add_argument("-n", type=int, help="number of keys", dest="num", default=10000) parser.add_argument( "--type", type=str, choices=["hset", "set"], help="set type", default="hset" ) args = parser.parse_args() redis = rclient.Redis(host="localhost", port=args.port, db=0) if args.type == "hset": fill_hset(args, redis) elif args.type == "set": fill_set(args, redis) if __name__ == "__main__": main()