У меня есть следующий код:
arr = {}
for i in range(0, 1000000):
arr[i] = i*2
redis_client.hmset("data_arr", arr)
g = []
for i in range(0, 100):
v = redis_client.hget("data_arr", str(random.randint(0, 10000000)))
if v!=None:
g.append(v)
Во-первых, вставка 1 миллиона строк выполняется очень медленно при повторном запуске (более 60 секунд), тогда как простое сохранение на диске занимает менее 1 секунды.
Во-вторых, redis hget
очень медленный, намного медленнее, чем чтение дампа json с диска и его обработка с использованием метода линейного поиска.
Пожалуйста, предложите мне ускорить Redis и альтернативные способы, где я могу хранить данные в оперативной памяти в течение определенного периода времени и иметь доступ к ним как к API.
Я изначально использую MySQL в памяти для хранения временных данных, потому что MySQL очень хорош для запуска поиска и других транзакций SQL, но сложность возрастает, когда я хочу, чтобы данные сохранялись в течение определенного времени или удаляли их, когда тяжелый.