Я использовал Redis вместо LMDB в одном проекте, и скорость оказалась настолько хорошей, что теперь работодатель хочет изменить во всех устаревших проектах.
Изменение каждого из них может занять годы!Поэтому я хотел написать программу, которая может автоматически определять код LMDB и заменять соответствующий код Redis, так как оба являются хранилищем ключей и значений.
Но проблемы заключаются в
- Какнайти функции у которых вызовы lmdb есть?Поскольку это может быть
прямой импорт, вложенный импорт или переменная.Должен ли я запустить IO Profiler и искать трассировку стека с помощью lmdb? - После идентификации функций Как идентифицировать соответствующий код с учетом различных способов написания кода (циклы, переменные и т. Д.).
Я посмотрел на Tokenizer и Python 2to3, которые могут пригодиться, но только после идентификации.Пример кода для чтения / записи из LMDB и Redis
def get_lmdb_data(self,app_key, dealid):
env = lmdb.open(table_path)
with env.begin() as txn:
data = txn.get(app_key)
return data
def get_redis_data(self,app_key, dealid):
redis_db = self.__get_connection_redis()
data = redis_db.get(app_key)
return data