Kom ihåg mig?
Home Menu

Menu


Att lagra mycket information i sessioner

 
Ämnesverktyg Visningsalternativ
Oläst 2007-09-28, 14:19 #1
Indigo Indigo är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2007
Inlägg: 305
Indigo Indigo är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2007
Inlägg: 305
Sitter och funderar på lite olika möjligheter att lagra stora mängder information som kommer att behöva parsas igenom mycket frekvent under besökarens vistelse på sidan. Informationen kommer att vara unik för varje besökare, och kanske ett par hundra kilobyte tung. Dessutom skall den fyllas på frekvent, allt medan besökaren är aktiv.

Är det smidigast att spara allt i en databas? Rent instinktivt känns det inte så, då databasen kommer vara ganska hårt ansatt ändå. En lösning jag lutar lite åt är att spara informationen i en fil, där varje registrerad besökare har en egen fil.

Vinner jag något på att vid inloggning dra över all information till en session och parsa igenom den allt eftersom det behövs? Jag måste dock fortsätta skriva den nya informationen till filen (och inte sessionen) för att inte riskera att tappa infon om besökaren skulle stänga sin läsare huxflux.

Vet inte om jag lyckas förmedla mitt problem eller hur jag tänker? Om jag mot förmodan lyckades, och DU vet hur man bäst gör, tala då gärna om det för mig
Indigo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-28, 14:48 #2
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Hej.

Några kortfattade tips på vägen..

Lägg inte för mycket data i PHP-sessionen. Din applikation blir då en mardröm att skala.
Är det mycket data så är det nog bättre att lagra som en fil (dock inte gärna XML eftersom det slöar ner i onödan).
Det låter dock som att du i detta fallet bör använda din databas istället.
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-28, 16:21 #3
Indigo Indigo är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2007
Inlägg: 305
Indigo Indigo är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2007
Inlägg: 305
Jag är inte så säker på om databas är rätt väg, eftersom den ändå kommer få jobba massa. Eller är det ineffektivt att skriva och läsa fil? Vad kräver mest kräm av servern?
Indigo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-28, 16:27 #4
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
I PHP så sparas ju sessionerna som filer som default. Så jag ser inte riktigt vad skillnaden skulle vara att spara informationen i en annan fil.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-28, 16:42 #5
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Spara det i en Memcache-server. Det är effektivt samt så är det lätt att skala, då man kan ansluta via nätverket till en Memcache-server.
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-28, 17:15 #6
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Originally posted by WizKid@Sep 28 2007, 16:27
I PHP så sparas ju sessionerna som filer som default. Så jag ser inte riktigt vad skillnaden skulle vara att spara informationen i en annan fil.
Det beror lite på hur stor del av informationen du måste peta i vid varje sidladdning. Måste du peta i alla variablar så kanske session är samma som fil(er). Är det bara en del av informationen som du skall peta på, så kanske du inte behöver ladda upp hela filen / alla filer i minnet vid varje sidladdnig. Lite så tänkte jag..
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-28, 21:02 #7
jahaa jahaa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2004
Inlägg: 91
jahaa jahaa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2004
Inlägg: 91
Citat:
Originally posted by fors@Sep 28 2007, 16:42
Spara det i en Memcache-server. Det är effektivt samt så är det lätt att skala, då man kan ansluta via nätverket till en Memcache-server.
Agree, simpelt är det också.

Kod:
<?php

$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://$host:$port ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);

?>
jahaa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-30, 10:06 #8
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Eller spara i MySQL minnes(heap) tabeller..slipper i alla fall läsning mot disk
danjel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-30, 11:05 #9
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Originally posted by danjel@Sep 30 2007, 09:06
Eller spara i MySQL minnes(heap) tabeller..slipper i alla fall läsning mot disk
Japp. Fast fördelen är att Memcache är snabbare i det här fallet, då man slipper parsa sql-frågan osv. Fast hur mycket det skiljer sig får man ju benchmarka om man är osäker på vilken lösning man skall välja.
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-02, 13:08 #10
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Hmm nja det beror ju på ...om man tex lagrar Memcache sessionerna på en annan burk(?)
Då skulle nog en mysql på samma burk som webbservern gå snabbare..
danjel är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 19:16.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017