Comments 6
В мире питона иногда кажется что все написано до нас…
Очень похоже на модуль redis-collections
Очень похоже на модуль redis-collections
+2
Ссылки на гитхаб раскидайте почаще. И уж точно рядом с фразой про pull-реквесты.
А в целом отличная идея. Одобряю. Может быть теперь попробую redis.
А в целом отличная идея. Одобряю. Может быть теперь попробую redis.
+2
Explicit is better than implicit
+1
Абстракция в виде одного словаря на всю базу данных — вещь непрактичная для долговременного использования, неплохое её улучшение — namespaces.
Наиболее удобны в подобных плоских базах префиксные области имён:
Но в Redis есть ещё тип данных Hash, который в некоторых случаях заменяет обычные ключи со значениями, и не имеет проблемы с глобальной областью видимости. Для него можно сделать почти такой же интерфейс:
P.S. А следующим усовершенствованием являются batch-методы: get_many, set_many, delete_many и обобщённый batching в виде redis pipeline, потому что без них любая операция с данными (меньше 100 кб) в основном тратит время на прохождение запроса до базы данных и обратно.
Увы, удобного интерфейса для них в питоне нет, и поэтому приходится забыть про квадратные скобки и «in», которые так хорошо смотрелись в программах из 50 строк!
Наиболее удобны в подобных плоских базах префиксные области имён:
r = Redis(host='localhost', port=6379, db=0)
d = Dictator(r, prefix='planets:')
d.set('Mars', 1000) # updates key 'planets:Mars' with value 1000
d['Venus'] = 2000 # gets value for key 'planets:Venus'
print 'Mars' in d
...
Но в Redis есть ещё тип данных Hash, который в некоторых случаях заменяет обычные ключи со значениями, и не имеет проблемы с глобальной областью видимости. Для него можно сделать почти такой же интерфейс:
r = Redis(host='localhost', port=6379, db=0)
dh = DictatorHash(r, key='Planets')
dh.set('Mars', 1000)
dh['Venus'] = 2000
print 'Mars' in dc
P.S. А следующим усовершенствованием являются batch-методы: get_many, set_many, delete_many и обобщённый batching в виде redis pipeline, потому что без них любая операция с данными (меньше 100 кб) в основном тратит время на прохождение запроса до базы данных и обратно.
Увы, удобного интерфейса для них в питоне нет, и поэтому приходится забыть про квадратные скобки и «in», которые так хорошо смотрелись в программах из 50 строк!
+4
Sign up to leave a comment.
Встречайте Dictator! Маленький и добрый