Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
tothjozsi96 #16240 üzenetére
Tehát akkor mégis működik a kódom, amit mutattam?
Ahogy elnézem, csak annyi különbség van, hogy a get-metódusnál nem array-t használsz, és hogyha ez így működőképes, az számomra arra utal, hogy hibás/hiányos a hivatalos dokumentáció:
http://hu1.php.net/manual/en/memcache.get.php
itt ezeket a fejléceket írja:
string Memcache::get ( string $key [, int &$flags ] )
array Memcache::get ( array $keys [, array &$flags ] )
Magyarul ezek szerint ha string kulcsot adsz meg, akkor stringet is kapsz vissza; de Te a kódod szerint tömböt kaptál vissza. Akkor itt a hivatalos doksiban kéne lennie még legalább egy mixed Memcache::get ( string $key [, int &$flags ] ) sornak is... Ez így logikus is lenne, hiszen a set-metódussal is mixed állítható be, így lekérésnél is nyilván mixed lehetne. Na, ezt is megtudtuk.DE:
- jól érzed, ez az 'id' => rand(1,999999999) sor teljesen rossz. Mi van, ha a rand() eredményeként éppen olyan azonosító jön ki, ami már létezik? Sehol nem ellenőrzöd. De amúgy sem szokás sehol így generálni az azonosítót. Ja, és az azonosító nem feltétlenül kell, hogy szám legyen (lásd uniqid()), vagy ha mégis az kell, akkor oldd meg, hogy inkrementálva legyen, de akkor meg figyelni kell arra is, hogy ha több kliens is csatlakozik, akkor atomikusan történjen az inkrementálás, ne tudjanak korábbi/"kettő közötti" állapotot kiolvasni. Cél egyáltalán ezt feltölteni majd valami adatbázisba, hogy meglegyenek a régi adatok? Mert ha nem, szerintem simán használhatnád a uniqid() függvényt, és meg is vagy. Ha adatbázisba feltöltöd, ott max. akkor problémás, ha az id-hez egy automatikusan inkrementálódó int van beállítva; az nyilván nem fogadja el az angol ábécé karaktereit.
Az inkrementálós megoldáshoz nem ártana valami lockolás, hogy egyszerre csak egy kliens tudja módosítani az értéket, de simán megtehetnéd azt, hogy egyszerűen a set/replace-szel egy MÁSIK kulcsot állítasz be, ami ezt a számot tárolja, azt lekéred, megnöveled, stb.
- minek kéred le a replace/set után még egyszer az adatokat a get-metódussal? Hiszen már ott van a $conversations-tömbödben. Mondjuk annyiból jó lehet, hogy ha közben más kliens módosította az adatokat, akkor azt is megkapod...
- erre a feladatra szerintem tényleg jobb lenne valami NoSQL-megoldás, amiről korábban írtam."Amúgy ez a compress asszem valami tömörítés a memcache-ben."
Igen (MEMCACHE_COMPRESSED), de ezt szerintem hagyd ott szépen, ahogy mutattam, lásd:
http://stackoverflow.com/questions/2105663/what-is-compression-for-in-phps-memcache/2106096#2106096
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kerékpárosok, bringások ide!
- Okos Otthon / Smart Home
- Vezetékes FEJhallgatók
- Macska topik
- SD-kártyát vennél? Ezért ne csak a GB-ot nézd! – Tech Percek #9
- Tőzsde és gazdaság
- Magga: PLEX: multimédia az egész lakásban
- Víz- gáz- és fűtésszerelés
- War Thunder - MMO Combat Game
- További aktív témák...
- BESZÁMÍTÁS! ASUS H610M I5 12400F 32GB DDR5 512GB SSD X 4060 8GB SPIRIT OF GAMER CLONE 3 Chieftec600W
- BESZÁMÍTÁS! MSI Z390 i5 9400F 16GB DDR4 512GB SSD RTX 2060Super 8GB Corsair Carbide Series 200R 600W
- ZOTAC GAMING GeForce RTX 3090 Trinity OC 24GB
- DJI Avata drón +Motion controller - hibátlan, karcmentes állapotban
- BESZÁMÍTÁS! ASUS B450 R7 1700X 16GB DDR4 512GB SSD RX 580 8GB Rampage SHIVA Corsair 450W
- Bomba ár! Dell Inspiron 7400 - i7-1165G7 I 8GB I 512SSD I 14,5" 2K I HDMI I Cam I W11 I Garancia!
- BESZÁMÍTÁS! AOC 24P1 24 FHD 60Hz 5ms monitor garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte H610M i5 13400F 16GB DDR4 512GB SSD RX 6700XT 12GB DeepCool MATREXX 40 650W
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! MSI B550 R9 5900X 32GB DDR4 512GB SSD RX 6700 XT 12GB Rampage SHIVA Enermax 750W
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest