Sessions v databázi sqlite a jejich expirace a mazání
- Oggy
- Člen | 306
Řeším velký počet souborů sessions .. ukládám si je jinam než je dafult v php.ini, takže si nepotřebné soubory mažu cronem, ale pro zálohování na serveru je ten počet souborů stejně velký, takže chci sessions přesunout do databáze. Připadá mi jako vhodné a jednoduché řešení sqlite..ale mám jeden problém a dotaz.
config:
<?php
nette:
session:
autoStart: smart
expiration: + 31 days
save_handler: sqlite
save_path: "%tempDir%/sessions"
?>
dost8ávám tento Warning
ini_set(): Cannot find save handler ‚sqlite‘
Je potřeba ještě něco nastavovat?
A jak je řešeno odmazávání expirovaných sessions? Nebo je potřeba také nějak např. přes cron?
- David Ďurika
- Člen | 328
no asi si budes musiet napisat vlastny session storage https://api.nette.org/…Storage.html
a potom ked ho napises tak by si ho mohol zverejnit, lebo onedlho budem nieco take potrebovat aj ja :)
Editoval achtan (1. 11. 2012 17:28)
- Filip Procházka
- Moderator | 4668
Do Sqlite bych to nedával.. Aplikace se bude zamykat nejenom na úrovni uživatele, ale úplně všech requestů. Co takhle raději zvážit redis?
- Oggy
- Člen | 306
HosipLan napsal(a):
Do Sqlite bych to nedával.. Aplikace se bude zamykat nejenom na úrovni uživatele, ale úplně všech requestů. Co takhle raději zvážit redis?
Díky, vypadá to jednoduše. Používáš to? Proč zrovna tohle řešení?
Jaké mám možnosti pro řešení problému s obrovským počtem
souborů?
sqlite, říkáš ne.
memchached?
redis?
?
Editoval Oggy (1. 11. 2012 18:22)
- Filip Procházka
- Moderator | 4668
Redis je, jednoduše řečeno, memcache, která se umí průběžně ukládat na disk, aby se z něj obnovila (když se vypne mašina, nebo tak…). Plus umí nějaké další parádičky jako message queue atd.
- Filip Procházka
- Moderator | 4668
Jednak můžeš použít nějakou konstantu (třeba hash z gitu), podle které se to bude invalidovat automaticky. Nebo se tam prostě připojíš a tu cache smažeš :) Můžeš si na to napsat shell/php script.
- Filip Procházka
- Moderator | 4668
Zrovna session bych asi nemazal, když nahraju novou verzi webu :) U využití na session není moc co ukazovat. Zaregistruješ extension a do configu dáš
common:
redis:
session: on
Ale jinak invalidace konstantou viz třeba: https://api.nette.org/…ate.php.html#111
- Patrik Votoček
- Člen | 2221
HosipLan napsal(a):
Zrovna session bych asi nemazal, když nahraju novou verzi webu :)
Mazal bych jenom pokud se změní struktura dat tuším že na tohle má ale nette anotaci…
- Filip Procházka
- Moderator | 4668
Zkus se připojit pomocí redis-client
, jestli ti redis vůbec
funguje. Popř založ nové téma, ať to tu nespamujeme ;)