apc_add() против apc_store()

#php #apc

#php #apc

Вопрос:

Я знаю, что apc_store() перезаписывает ключ, если он уже существует, поэтому я знаю разницу, мой вопрос просто: какой метод лучше / лучшая практика?

Ответ №1:

Единственное различие между этими двумя функциями заключается в том, что apc_add() не будет перезаписывать существующую запись.
apc_store() с другой стороны, перезапишет существующую запись.

Итак, какой из них вам следует использовать, между apc_add() и apc_store() ?
Ну, все зависит от ваших потребностей: вы хотите, чтобы существующая запись была перезаписана или нет?

Комментарии:

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

Ответ №2:

В дополнение к тому, что пишет @Pascal MARTIN, между ними есть важное практическое различие.

В среде с высокой степенью параллелизма, например, при использовании apc для пользовательских объектов в apache, использование apc_store может привести к созданию бомбы замедленного действия apc (ссылка датирована 2007 годом, но все еще актуальна!), в то время как apc_add устраняет эту проблему.

Смотри также: https://serverfault.com/questions/342295/apc-keeps-crashing

Ответ №3:

вам нужно apc_add() на случай, если вы хотите реализовать атомарный счетчик в параллельной среде. это основной вариант использования IMO.

Ответ №4:

Действительно зависит от логики, которую вам нужно применить: вам нужно перезаписать ключ или нет? Все зависит от вас.

Комментарии:

1. Тогда в вашей памяти ошибка страницы.