The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск СУБД Redis 7.4, переведённый на проприетарные лицензии

31.07.2024 13:02

Опубликован релиз СУБД Redis 7.4, относящейся к классу NoSQL-систем. Redis предоставляет функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua. В отличие от систем хранения в оперативной памяти, таких как Memcached, Redis хранит БД не только в памяти, но на диске, что гарантирует сохранность БД в случае аварийного завершения работы.

Redis 7.4 объявлен как первая версия, распространяемая с новыми условиями лицензирования - вместо ранее применявшейся лицензии BSD код теперь доступен под проприетарными лицензиями RSALv2 (Redis Source Available License v2) и SSPLv1 (Server Side Public License v1). Желающие продолжить использование кода под лицензией BSD могут воспользоваться проектами Valkey (форк, развиваемый при участии Amazon, Google, Oracle, Ericsson и Snap), Redict (форк от автора пользовательской оболочки Sway и языка Hare), Garnet (СУБД от Microsoft, совместимая с Redis) или KeyDB (высокопроизводительный форк Redis 5 от Snapchat).

Лицензии SSPL и RSAL приводят к дискриминации отдельных категорий пользователей, что не позволяет считать их открытыми или свободными. По своим целям обе лицензии походят друг на друга, а отличия сводится к тому, что лицензия SSPL основана на копилефт лицензии AGPLv3, а лицензия RSAL основана на пермиссивной лицензии BSD. Лицензия RSAL позволяет использовать, изменять, распространять и интегрировать код в приложения, за исключением случаев, когда эти приложения является коммерческими или используются для предоставления управляемых платных сервисов). Лицензия SSPL дополнительно содержит требование поставки под той же лицензией не только кода самого приложения, но и исходных текстов всех компонентов, вовлечённых в предоставление облачного сервиса.

СУБД Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения. Все данные в полном объёме кэшируются в оперативной памяти. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl.

Для управления данными предоставляются такие команды, как инкремент/декремент, стандартные операции над списками и множествами (объединение, пересечение), переименование ключей, множественные выборки и функции сортировки. Поддерживается два режима хранения: периодическая синхронизация данных на диск и ведение на диске лога изменений. Во втором случае гарантируется полная сохранность всех изменений. Возможна организация master-slave репликации данных на несколько серверов, осуществляемая в неблокирующем режиме. Доступен также режим обмена сообщениями "публикация/подписка", при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.

Ключевые изменения в функциональности Redis 7.4:

  • Добавлена возможность ограничения времени жизни отдельных полей в хэшах, структурах для хранения сгруппированных коллекций записей в формате ключ-значение. В отличие от назначения времени жизни ключу предложенное изменение позволяет выставлять не только общее время жизни для всех связанных полей, но и индивидуальные значения времени жизни отельных полей, что может использоваться, например, для обеспечения более короткого жизненного цикла токенов аутентификации, по сравнению с другими данными сеанса.
  • Предложены новые типы данных bfloat16 и float16, оптимизированные для использования в приложениях машинного обучения и позволяющие сократить потребление памяти по сравнению с ранее доступными типами float32 и float64. При использовании в хэшах новые типы дают возможность сократить потребление памяти в векторных БД на 47%, уменьшить задержки извлечения данных на 59% и сократить время создания индексов на 58% по сравнению с типом float64.
  • Упрощено использование вторичных индексов. При запросе информации из вторичных индексов теперь можно не экранировать отдельные спецсимволы, такие как "@" и ".", а использовать двойные кавычки для обрамления порции данных. Также значительно улучшено индексирование пустых и отсутствующих полей - для создания индексов и формирования запросов, учитывающих наличие полей, предложены новое ключевое слово INDEXMISSING и функция ismissing(). Добавлены новые операторы INTERSECT и DISJOINT для упрощения поиска геопространственных данных. Добавлены возможности для анализа потребления памяти индексом.
  • Добавлена поддержка фильтров для отсеивания элементов в добавляемых наборах данных, например, при периодической загрузке в БД данных от датчиков можно добавить фильтр для игнорирования значений, отличие времени которых от предыдущего значения меньше определённого порогового значения.
  • Прекращена поддержка триггеров и функций на языке JavaScript, предложенных в прошлом выпуске.


  1. Главная ссылка к новости (https://redis.io/blog/announci...)
  2. OpenNews: Выпуск СУБД Redis 7.0
  3. OpenNews: Выпуск Redict 7.3.0, форка СУБД Redis
  4. OpenNews: Amazon, Google, Oracle, Ericsson и Snap основали Valkey, форк СУБД Redis
  5. OpenNews: СУБД Redis переходит на проприетарную лицензию. Обсуждение удаления Redis из Fedora
  6. OpenNews: Microsoft открыл код хранилища Garnet, совместимого с Redis
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61632-redis
Ключевые слова: redis
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (59) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 13:19, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    KeyDB лучше Valkey? Что из этого можно использовать в качестве drop-in замены для Redis?
     
     
  • 2.10, Аноним (10), 13:51, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Разработка KeyDB практически прекратилась с прошлого года https://github.com/Snapchat/KeyDB/graphs/commit-activity

    Релиз 6.3 привнес существенную деградацию производительности, которую никто не планирует чинить https://github.com/Snapchat/KeyDB/issues/470

    Так что близкие к оригиналу варианты редиса выглядят более предпочтительными.

     
  • 2.44, Аноним (44), 09:07, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Надо было вообще не пользовать Redis, оно с самого начало попахивало закрытием в проприетарщину.
     
  • 2.71, Омноном (?), 07:02, 03/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https://redict.io/posts/2024-04-03-redict-7.3.0-released/

    https://codeberg.org/redict/redict

     

  • 1.3, Аноний III (?), 13:19, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    "Лицензия SSPL дополнительно содержит требование поставки под той же лицензией не только кода самого приложения, но и исходных текстов всех компонентов, вовлечённых в предоставление облачного сервиса. "

    я не согласен с этим положением, я протестую

     
     
  • 2.24, голос из леса (?), 16:58, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    "мы вас услышали" (C)
     
  • 2.26, Аноним (26), 17:30, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >я не согласен с этим положением

    Используй Redis 6-й ветки. Тебе точно нужны новые фичи 7-й?

     
     
  • 3.36, Аноним (36), 23:47, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У редиса порой бывает проблема с безопасностью. Поэтому обновления скорее всего для проприетарных продуктов будут необходимы.
     
     
  • 4.40, Аноним (26), 01:05, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вешай redis вместо *:6379 на 127.0.0.1:6379 и 99% проблем с безопасностью будут мимо.
     
     
  • 5.64, нах. (?), 23:51, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Вешай redis вместо *:6379 на 127.0.0.1:6379 и 99% проблем с безопасностью будут
    > мимо.

    да никому твой подкроватный локалхост не нужен, вешай куда угодно.


     
  • 4.49, нах. (?), 12:02, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    проприетарные протухты могут купить проприетарную лицензию, не вижу проблемы.

    А бесплатное-взять-взять-взять - ну возьмет теперь оракломазоновский форк, и обойдется без наимоднявейших фичек, особенно вон прекрасно, вчера впилили жабоскрипты, сегодня - ой, выпилили.

     

  • 1.4, Wed (??), 13:24, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Существуют такие решения, как KeyDB и Tarantool, которые могут полностью заменить проприетарный Redis.


     
     
  • 2.11, Аноним (11), 13:52, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Модно самописный сделать там логики на несколько сот строк.
     
     
  • 3.15, Аноним (15), 14:13, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > несколько сот строк

    Лол, среднестатистический проект на голом пхп и хранилище на файлах будет максимум на пару сот строк))

     
  • 2.12, Аноним (10), 13:54, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В последнем релизе KeyDB существенно замедлили, после чего разработку свернули.
     

  • 1.6, Аноним (15), 13:32, 31/07/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +5 +/
     

     ....ответы скрыты (5)

  • 1.7, Аноним (7), 13:33, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    nextcloud завязан на redis и теперь при переходе на Memcached он лочит файлы.
     
     
  • 2.17, Аноним (16), 14:24, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не нужно было брать его в принципе. Тормозное слишком. Ну реально медленно работает. Memcached не помогает.
     
     
  • 3.32, Аноним (32), 21:13, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А альтернативы какие?
     
  • 2.27, Аноним (27), 18:03, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А в чем проблема продолжать использовать редис?
     
     
  • 3.29, Аноним (7), 19:21, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    об этом я не думал ну и продолжаю использовать редис
     

  • 1.13, Соль земли (?), 13:59, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Четыре форка! Мощно...
     
     
  • 2.50, нах. (?), 12:03, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    два полутрупа, один мертвеньким родился, ну и ораклемазон который подбирает все.

    Богатство выбора с единственной жизнеспособной альтернативой.

     

  • 1.19, КО (?), 15:03, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Access denied
    Классный опенсурсный дистр, мне понравился
     
     
  • 2.28, Аноним (-), 18:09, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    УМВР ¯\_(ツ)_/¯
    Есть вероятность что сайт блочится изнутри, а не снаружи.
    Возможно тебе просто не повезло)
     

  • 1.23, YetAnotherOnanym (ok), 15:42, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > новые типы данных bfloat16 и float16 <...> дают возможность сократить потребление памяти в векторных БД на 47%, уменьшить задержки извлечения данных на 59% и сократить время создания индексов на 58% по сравнению с типом float64

    А bfloat8 и float8 ващще в космос бы улетели. А bfloat4 и float4 - это просто был бы мгновенный варп на другой конец Вселенной. А bfloat2 и float2 и вовсе повернули бы время вспять.
    > Прекращена поддержка триггеров и функций на языке JavaScript, предложенных в прошлом выпуске

    Что, вот прямо любых функций на языке JavaScript? Круто!

     
     
  • 2.38, Аноним (-), 00:09, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А bfloat8 и float8 ващще в космос бы улетели. А bfloat4 и
    > float4 - это просто был бы мгновенный варп на другой конец

    Ну так многие акселераторы нейронок по этой причине и юзают какойнить int8. Куцый, зато на 1 кристалле влезает - дохрена, и за 1 такт эвона сколько этого обсчитывается за присест. А ты попробуй столько же FP32 хотя-бы за цикл сжевать. Как, слабо?!

     
  • 2.41, Аноним (41), 01:46, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Процессор не умеет работать с данными короче байта, так что float4 и float2 сэкономили бы место при хранении, но потребовали бы кучу кода на чтение и преобразование, "распаковку", к типам, с которыми процессор умеет работать. Это увеличение объёма кода и существенное уменьшение скорости работы.

    По аналогичному вопросу Страуструп в своей книге по С++ писал (про битовые поля), что при переходе от битовых полей к нормальным типам размер кода (из-за отсутствия необходимости паковывать/распаковывать) уменьшался настолько, что начинала потреблять меньше памятьи вся программа, включая эти "сжатые" данные.

     
     
  • 3.43, ИмяХ (ok), 06:27, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Интеловские процессоры уже лет семь как имеют расширение fp16c, а bfloat16 вообще не надо конвертировать, это тупо обрезанный float32
     

  • 1.30, Аноним (-), 20:21, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Выпуск СУБД Redis 7.4, переведённый на проприетарные лицензии

    Ну ладно, круто, а новость на опеннете тогда - зачем? Аудиторию потроллить чтоли? :)

     
     
  • 2.33, Аноним (-), 22:12, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Выпуск СУБД Redis 7.4, переведённый на проприетарные лицензии
    > Ну ладно, круто, а новость на опеннете тогда - зачем? Аудиторию потроллить чтоли? :)

    Потому что код является октрытым как бы не бухтели сектанты)
    Проекты и лицензии с открытым кодом, были задолго до появления FSF, OSI и прочих деятелей пытавшихся захапать даже сам термин (привет попытка закопирайтить(!!) термин open source).

     
  • 2.34, Аноним (-), 22:18, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Выпуск СУБД Redis 7.4, переведённый на проприетарные лицензии
    > Ну ладно, круто, а новость на опеннете тогда - зачем? Аудиторию потроллить чтоли? :)

    А кто определяет проприетарность лицензии)?

    Редису не понравилась ситуация, когда корпорасты "создают производные коммерческие продукты и занимаются перепродажей Redis в виде облачных сервисов, но не принимают участия в жизни сообщества и не помогают в разработке".
    Они поменяли лицензию и... сразу подкорпные подстилки начали вонять
    "Организация OSI (Open Source Initiative) заявила, что подобные лицензии не являются открытыми и продукты на их основе следует считать проприетарными"

    Код открыт -> значит опенсорс.
    Остальное это фантазии различных течений адептов Щво6одьки)

     
     
  • 3.39, Аноним (-), 00:22, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну как бы такие аппетиты - перебор даже по версии GPLщиков Ни 1 лицензия не _тр... большой текст свёрнут, показать
     
     
  • 4.48, Аноним (48), 11:36, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не правда Адепты ЖоПЛь как раз хотели, чтобы все что компиляется GCC становилос... большой текст свёрнут, показать
     
     
  • 5.61, Аноним (-), 22:31, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Шиза косила наши ряды GPL насаженный обманом смысла не имеет Я так понимаю что... большой текст свёрнут, показать
     
     
  • 6.67, Аноним (-), 11:52, 02/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Но почему Вон FSF годами обманом выпрашивал у разработчиков права на проекты и ... большой текст свёрнут, показать
     
     
  • 7.70, Аноним (-), 06:04, 03/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что с такими друзьями никаких врагов не надо Не вижу никакого обмана ... большой текст свёрнут, показать
     
  • 4.78, an2 (?), 04:48, 05/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже не AGPL.

    SSPLv1 - это AGPL, который наконец-то адаптировали к современным облачным реалиям. Если я кому-то поставляю ПО, хотя там из свободного кода только один компонент под GPL, от меня требуют открыть вообще всё под GPL.

    Аналогично, если кто-то предоставляет облачное ПО, в котором используется открытое ПО под SSPL, то нужно тоже открывать все компоненты под SSPL.

    Да, лучше бы FSF сами обновили AGPL.

     
  • 3.46, 12yoexpert (ok), 09:50, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    в чём проблема была запретить использование юрлицам в кластерных продуктах?
     
     
  • 4.77, an2 (?), 04:41, 05/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если запретить кому-то, то это дискриминация - и однозначно не свободная лицензия.
     

  • 1.37, Аноним (36), 23:54, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Много раз использовал эту НеЭскьюэль БД по требованию, тем не менее не понимаю этой необходимости при работе с .net. Реализовать эту "БД" в коде нет вообще никаких проблем. А теперь ещё платить нужно за использование. Понимаю что это скидывание ответственности как минимум, но мне кажется оно того не стоит чтоб ещё за это платить.
     
     
  • 2.42, penetrator (?), 02:50, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    я тебе еще больше удивлю, это поделие еще и однопоточное, т.е. смысла в нем как в отдельном инстансе для масштабирования просто нет, уж лучше свой собственный сервис (даже поверх реляционок), или альтернативы, которые хотя бы нормально с блобами работают и могут и стримить блобы, а не костыли с чанками на уровне логики приложения
     
     
  • 3.47, нах. (?), 10:18, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    для масштабирования просто поднимается любое нужное количество однопоточных реплик или шардов. При этом ты гарантирован от внезапно-сжирания всех ресурсов сервера бесконечным числом потоков. Но это слишком сложно для мастеров подкроватных стоек.

    Ну и стриминг блобов - немножко не совсем (совсем не) то для чего эту штуку изначально затевали.

     
     
  • 4.53, Аноним (53), 19:22, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да не ссорьтесь, оно от задачи зависит. Если работать с западными компаниями - так там вообще иностранцы технологии выбирают. Хорошо, если хоть спросят что лучше для проекта. Ну у меня такой опыт - архитекторов они нанимают там. А они в свою очередь заметно опираются на статьи на английском языке. Если написано что эта БД самая лучшая в 2024 году где-то и он это прочитал, вот именно это и будет использовать.
    Хм... нужен англоязычный сайт где в перемешку с подобными статьями будут статьи где рассказывается что лучшие архитекторы и программисты у нас. И технологии лучшие в 2025 году тоже у нас. Может начнут использовать больше.
     
     
  • 5.54, нах. (?), 19:56, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    чувак, ну есть же и удачливые ребята, которые не младшими подносчиками в западных компаниях трудятся.
    Выбирать технологии ты сможешь, если станешь архитектором хоть мелкого но проекта. Независимо от компании. По дороге вероятно узнаешь, что для этого надо не статьи на английском...

    А пока ты грезишь сказками что у вас там где-то лучшие технологии - тебе и в РФ архитектором не быть.

     
     
  • 6.73, Аноним (73), 23:46, 04/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В текущих реалиях меня это не пугает Если семья останется жива, переживёт военн... большой текст свёрнут, показать
     
     
  • 7.75, нах. (?), 00:03, 05/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Знания можно получить только путём изучения чего-то, а для этого нужно и читать, и наблюдать,
    > может и смотреть, а в целом изучать учебные материалы.

    это хорошо для исполнителя (но тоже мало).
    А для правильных решений, увы, совсем недостаточно. Только опыт работы, а не одни учебные материалы.
    Поэтому с архитекторами нонче беда.

    Наберутся опыта, и давай пиццей торговать. Или отель купят подешево где-нибудь в теплых странах.


     
     
  • 8.76, Аноним (73), 00:15, 05/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Слушай, у меня работы нет по политическим мотивам, а не потому что что-то плохо ... текст свёрнут, показать
     
  • 3.52, Аноним (53), 19:12, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну у них же на сайте где-то рассказывается про преимущество этого подхода. Вроде описывали что оно на быстродействие не особо влияет. Можно тот же SQLite с сохранением БД в оперативную память использовать, у него вроде как получше с блобами, хоть и не называется ноуэськьюэль. А так, в целом, спасибо, согласен.
     
     
  • 4.57, penetrator (?), 20:58, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Aerospike тоже рассказывает что они самые быстрые среди NoSQL, но есть нюансы, про которые у них ничего не написано... ))

    Давай серьезно ты бы в открытую заявлял о своих недостатках будь главой проекта или его разработчком? Когда на этом полностью завязано твое архитектурное решение?
    Ты почитай коменты от всяких нахов, и представь такого же пежона в команде разработчиков )))

    Даже Оракл прикрутил многопоточность в MySQL Cluster и теперь существует две версии ndbd и ndbmtd.
    Но то Оракл, немного другой уровень в базах данных.

     
     
  • 5.74, Аноним (73), 00:02, 05/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Разве-что анонимно на opennetе Анонимно мне стесняться нечего, потому что так ... большой текст свёрнут, показать
     
  • 3.66, Puku (?), 07:34, 02/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Альтернативу, которая нормально работает с blob подскажите пжта
     
     
  • 4.68, нах. (?), 21:55, 02/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    орацле. Ой, тоже нет.

    Там чувак пытается сделать что-то свое аналогов не имеющее, и вообще никак не пересекающееся с областью (разумного) применения редисов и прочих овощей.

     

  • 1.51, Ilya Indigo (ok), 18:28, 01/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    TTL для полей хеша очень полезная и желанная возможность,
    благодаря которой теперь можно нормально использовать хеши точно также как и таблицы, для хранения истекающих данных, которые будут сгруппированы в хеше, а не в кучи строках с префиксом.
    Обидно что не догадались сразу реализовать HGETEX, для одновременного получения данных и обновления TTL поля.
    https://github.com/redis/redis/issues/13459
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру