#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. Тогда в вашей памяти ошибка страницы.