LINUX.ORG.RU

Ну, судя по состоянию репы на гитхабе, оно достаточно мертво.

Octagon
()

А зачем это нужно?

ggrn ★★★★★
()

Ты можешь сериализовать свои данные через pickle и не надо никаких ORM. Впрочем, уверен, джанговские модели тоже легко сериализуются? так что отдельный ORM чисто под редис не нужен.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Ты можешь сериализовать свои данные через pickle

Очень плохая идея, потом добавлять/убирать атрибуты будет проблемно.

redvicka
()
Ответ на: комментарий от redvicka

Я бы кроме как под кэш редис не использовал. А кэш можно и почистить.

Помимо этого, разве у redisco (или подобных тулзов) есть средства миграции?

true_admin ★★★★★
()
Ответ на: комментарий от redvicka

Кстати, если сериализовать, например, в json то можно мигрировать при помощи самопальных пионер-скриптов.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Я бы кроме как под кэш редис не использовал. А кэш можно и почистить.

Усложнение деплоя.

Помимо этого, разве у redisco (или подобных тулзов) есть средства миграции?

Убирать существующие поля и добавлять новые с required=False можно. Оно в отличии от пикла не порушит приложение.

redvicka
()
Ответ на: комментарий от redvicka

Оно в отличии от пикла не порушит приложение.

Если только из-за самой джанги (например, при апдейте из-за DJANGO_VERSION_PICKLE_KEY). Внутри оно работает достаточно просто: https://github.com/django/django/blob/master/django/db/models/base.py#L546

Пиклю вообще пофиг на классы, он (по-дефолту) сериализует/десериализует self.__dict__. Поэтому я не вижу принципиальных отличий от json (кроме того что json править проще если, скажем, надо переименовать что-то, c pickle это гораздо сложнее).

Но я ни в коем случае не пропагандирую pickle, мне он самому не нравится. Сериализация в yaml у меня работала не хуже (в плане скорости даже быстрее, по объёму данных было примерно так же). И да, перешёл на yaml потому что его редактировать проще :).

true_admin ★★★★★
()
Ответ на: комментарий от redvicka

JFYI

Я щас сериализовал >200k объектов, pyyaml показался жутким тормозом по сравнению с pickle, где-то 100-200 раз медленнее. А yaml.CDumper и CLoader, похоже, могут только простые типы сериализовывать.

true_admin ★★★★★
()
Ответ на: комментарий от redvicka

На моих задачах:

import json
def default(o):
    return o.__dict__
%timeit -n 100 -r 10 json.dumps(template, default=default)
# 4.83 ms ± 74 µs per loop (mean ± std. dev. of 10 runs, 100 loops each)



import yaml
%timeit -n 3 -r 10 yaml.dump(template)
#906 ms ± 18.9 ms per loop (mean ± std. dev. of 10 runs, 3 loops each)
# WTF?? (yaml.CLoader не ковырял)

import pickle
%timeit -n 100 -r 10 pickle.dumps(template)
# 4.33 ms ± 141 µs per loop (mean ± std. dev. of 10 runs, 100 loops each)

У людей похожие результаты: https://stackoverflow.com/questions/27743711/can-i-speedup-yaml.

true_admin ★★★★★
()
Ответ на: комментарий от Jopich1

Это бетка. Мне бы на продакшен, и че-нить прикручивающееся к Django моделям из коробки.

menangen ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.