За последние 24 часа нас посетили 17599 программистов и 1724 робота. Сейчас ищут 962 программиста ...

Межпроцессовое взаимодействие ( IPC )

Тема в разделе "Прочие вопросы по PHP", создана пользователем FromWorm, 15 мар 2015.

  1. FromWorm

    FromWorm Новичок

    С нами с:
    20 фев 2015
    Сообщения:
    15
    Симпатии:
    0
    Дорогие разработчики, при разработке более или менее крупных проектов, у многих скорее всего возникала потребность в передаче данных между скриптами, у меня есть свое решение с разделяемой памятью и тут есть свои недостатки, но хотелось бы узнать, какими методами и почему пользуетесь вы?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А какая задача?
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Все очень просто - используй не свое, а готовое, существующее, проверенное решение с разделяемой памятью, и не будет проблем и недостатков.
     
  4. FromWorm

    FromWorm Новичок

    С нами с:
    20 фев 2015
    Сообщения:
    15
    Симпатии:
    0
    Передача информации между скриптами.
    Хочу услышать ваши предложения по этому поводу, какие готовые решения могли бы предложить вы и почему?
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Предлагаю: memcache, XCache.
    Причины: они работают и используются на крупных проектах, и уже пережили все детские болезни.
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Это типа "какие ботинки вы носите". Не, есть те, кто зимой и летом одним цветом, но все же обычно по погоде.
    В чем недостаток шареной памяти для вас?
     
  7. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    а можно поинтересоваться как это работает (мне это не нужно на данный момент, по этому рыть документацию как то совсем не хочется, не рационально, но просто интересно) как я понимаю это расширение для РНР, оно держит скрипты в ОП, а оно держит их в какой виде уже в интерпретируемом? ну т.е. бери и выполняй, проверять уже ни чего не надо. Надеюсь понимание о чем я.
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нет, не то. То, что ты описал - это аккселераторы. Меморишардеры это другое. Это когда ты можешь записать в оперативку любое значение а, потом, прочитать его.

    З.Ы. Да, xCache - это еще и аккселератор, может он тебя смутил. Но я привел его в пример из-за его меморишардовой функциональности, а не из-за этого.
     
  9. FromWorm

    FromWorm Новичок

    С нами с:
    20 фев 2015
    Сообщения:
    15
    Симпатии:
    0
    Есть данные которые одни для всех, а есть те которые разные и для каждого, так вот отличать кому и какие данные принадлежат становится затруднительно при потоке пользователей, но основное преимущество это скорость работы.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Разработайте нормальную номенклатуру для ключей, и проблем не будет никаких. Решение ваших архитектурных проблем не входит в список задач инструмента.
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Можно еще Redis использовать, но опять же, задача абстрактная.
    Есть же базы данных в оперативной памяти для ACID (Atomicity, Consistency, Isolation, Durability) и други разные комбинации.
    Очереди сообщений AMQP (Advanced Message Queuing Protocol), rabbitmq и т.д.
    Ну и как выше уже было сказано просто In-memory key-value store, тот же memcached.
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Очень интересно что за задачи решает FromWorm.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А еще можно использовать БД или файлики:)
    Если цель - просто обеспечить шардинг данных между процессами, то и так сойдет.

    Вообще, классика жанра это:
    Скрипт<->RAM-кэш любого сорта<->БД;

    Добавлено спустя 54 секунды:
    Ох, вангую, что у него стадо сферических коней в стойло не заходит.
     
  14. FromWorm

    FromWorm Новичок

    С нами с:
    20 фев 2015
    Сообщения:
    15
    Симпатии:
    0
    Спасибо за предложения! :)
    А как обстоять если чрезвычайно важна скорость получения и записи данных? Да, над номенклатурой я поработаю, а про коней верно подмечено!)
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Видишь цепочку? В ней три узла. Промежуточный узел как таковой не нужен, он включается в нее именно тогда, когда становится чрезвычайно важна скорость. Потому как, если не важна, хватает связки скрипт<->БД.

    Скрипту нужны данные, как можно быстрее, он стучится в RAM-хранилище, если там нет, он стучится в БД, получает данные, после чего записывает их в RAM-хранилище. Если данные в RAM-хранилище уже есть, берет их оттуда.
     
  16. FromWorm

    FromWorm Новичок

    С нами с:
    20 фев 2015
    Сообщения:
    15
    Симпатии:
    0
    Спасибо за схему, я сейчас немного не об этом, если например данные требуется в определенный момент передавать только между скриптами или другими процессами, без применения баз данных, то какие варианты тут, если крайне важна скорость? Получается по скорости на первом месте стоит разделяемая память
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Если внимательно и вдумчиво перечитаешь то, что я написал выше, увидишь, что твой вопрос - частный случай того, что я описал. Всего лишь частный случай. Да, быстрее шардинга оперативки ты ничего не найдешь.
     
  18. FromWorm

    FromWorm Новичок

    С нами с:
    20 фев 2015
    Сообщения:
    15
    Симпатии:
    0
    Спасибо, благодаря вашим ответам разобрался с проблемой.