badam możliwości wykorzystania memcached jako magazyn sesji dla systemu zbudowanego na CodeIgniter. Czy ktokolwiek to zrobił wcześniej (to chyba głupie pytanie :) a jeśli tak, jakie są twoje doświadczenia? Czy korzystałeś już z istniejących bibliotek/rozszerzeń? Co się stało, jeśli chodzi o poprawę wydajności? Wszelkie zastrzeżenia?Korzystanie memcached jako pamięci sesja z CodeIgniter
Odpowiedz
Mając PHP umieścić sesje w Memcache bezpośrednio, a nie poprzez kod ramy jest prosta - to tylko zmiana dwie linie w php.ini:
# see http://php.net/manual/en/memcache.ini.php
session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
używa nieco starszych (ale wciąż w pełni obsługiwane) rozszerzenie "memcache" z PECL.
Można wybrać CodeIgniter Multicache Biblioteka, które można znaleźć tutaj: http://www.haughin.com/code/multicache/
W kodzie można proste użycie tak:
$this->load->library('cache');
//To use memcache
$this->cache->useMemcache($iptomemcache, $port); /*if you want, you can check to see if the connection even worked, as this will return false if the connection failed.*/
$this->cache->save('testkey', 'testdata', NULL, 3600); /*caches the testdata string for 1 hour. */
echo $this->cache->get('testkey');
//To switch back to file based caching
$this->cache->useFile();
//etc.
To nie jest praktyczny w użyciu Memcached do przechowywania danych relacyjnych (takich jak MySQL); byłoby nieefektywne zażądanie każdego elementu od Memcached, a następnie przetestowanie, czy pasuje do zapytania. Są lepsze rozwiązania takiego problemu (na przykład rozważmy tabele pamięci w MySQL).
Z drugiej strony, jeśli szukasz prostego przechowywania klucza/wartości, to z pewnością praktyczna aplikacja do Memcached. Czego bym się jednak trochę obawiał, to napisanie dla niego sterownika CodeIgniter. Interfejs Memcached w PHP jest już prosty:
$memcached->get('my key');
$memcached->set('my key', 'my value');
Proponuję po prostu bezpośrednio korzystać z klas Memcached. Dodanie całego dodatkowego obciążenia do CI wydaje mi się po prostu brudne i niepotrzebne.
Po drugiej stronie, widziałem implementacje Memcached używane do silnika sesji CodeIgniter. Jest to z pewnością bardzo ważny powód, by napisać kierowcę, i bardzo bym go zachęcał (sesje to ból na karku).
Powodzenia
- 1. CodeIgniter limit rozmiaru sesja
- 2. Porównanie wydajności pamięci MemCached z buforowaniem dysku
- 3. Codeigniter i PHP sprawdź czy sesja istnieje
- 4. Ubuntu: Uruchamianie Memcached jako demona
- 5. Korzystanie z wielu baz danych ciągu CodeIgniter
- 6. CodeIgniter - Korzystanie z wielu baz danych
- 7. Korzystanie Flask Sesja w Gevent Socket-IO
- 8. Sesja Undefined Korzystanie Przyłączenie Redis/ExpressJS/Node
- 9. CodeIgniter - Jak sprawdzić sesja ma być używany w każdych metod
- 10. Memcached, Redis lub Couchbase
- 11. $ this-> Sesja-> set_flashdata(), a następnie $ this-> Sesja-> flashdata() nie działa w CodeIgniter
- 12. MongoDB jest lepszym zamiennikiem Memcached?
- 13. Korzystanie z EventBus, pamięci i architektury
- 14. memcached expiration time
- 15. Zalety wielu memcached instances
- 16. Kiedy używać memcached
- 17. Buforowanie obrazów w Memcached
- 18. Korzystanie MEF jako IoC
- 19. Projektowanie aplikacji internetowych: sesja lub sesja mniej
- 20. Korzystanie z SharePoint jako źródła danych
- 21. Strumień pamięci jako DB
- 22. Rejestrowanie aktywności Memcached
- 23. Qt Sesja z matplotlib.pyplot.plot
- 24. Nie można zainstalować memcached 1.4.5 jako usługi w systemie Windows
- 25. Jak korzystać z memcached z Joomla
- 26. Dziwny problem z Memcached z Apache
- 27. CodeIgniter form_radio z SET_VALUE
- 28. Korzystanie z inteligentnych wskaźnik zarządzać pamięci przydzielonej przez funkcję
- 29. CodeIgniter Problem z paginacją
- 30. Korzystanie enum jako argument atrybutu