ugrás a tartalomhoz

memcached - élesben ezt hogy illik... ?

mind1 valami név · Már. 16. (K), 20.54
Nézegetem és nem értem: tutorialok szerint semmiféle authentikációs lehetőség nincs benne.
Ha ez így van, akkor élesben ezt mire lehet használni és hogyan?

Kiindulási alap a redis volt: szép, jó stb., épp csak szó szerint key-value tároló, a value csak elemi adat lehet, adatstruktúra nem.
Memcached úgy tűnik, jó lenne, nade nulla authentikációval???
(Tudom, van valami bővítménye, de az alap az nem tartalmazza... De akkor ez mire jó?)
 
1

(Nincs téma)

inf · Már. 16. (K), 22.32
2

??? inf=bambano?

mind1 valami név · Már. 16. (K), 22.35
???
inf=bambano?
3

mer? rossz a link? :D

inf · Már. 16. (K), 23.38
mer? rossz a link? :D
4

Nem, de ez az intelligens

mind1 valami név · Már. 16. (K), 23.46
Nem, de ez az intelligens megnyilvánulás már másodjára juttatja eszembe, hogy te ő vagy.
Szerinted hobbiból kérdeztem?

Feltételezem, nem hallottál még olyanról, hogy egy gépen több szolgáltatás is fut és ha az egyiket feltörik, akkor a másik erőforrásaihoz is könnyen hozzáférhetnek, ha azok védtelenek - ahogy jelen esetben a memcached szerver eléggé annak tűnik.
5

Nem szeretek sokat olvasni,

inf · Már. 17. (Sze), 00.51
Nem szeretek sokat olvasni, ez van. :D Amúgy a fenti SASL vagy mi a tököm nem ezt oldja meg?
6

Épp azt mondom, hogy

mind1 valami név · Már. 17. (Sze), 01.27
Épp azt mondom, hogy tutorialok szerint ez valami külön felrakható dolog, nem is túl régi.
Stackoverflow-n is csak annyit írtak, hogy használj tűzfalat.
En5meg nem értem, hogy egy ilyen eszközt hogy a fenébe lehet élesben használni.
7

Miért ne lehetne? A

inf · Már. 17. (Sze), 03.27
Miért ne lehetne? A biztechnek egyik alapvetése, hogy kockázat arányos védelem kell. Ha elfogadják a vele járó kockázatokat, mert drágább lenne hozzátákolni jogosultság ellenőrzést, mint a várható kár, amit egy ilyen törés okoz, akkor simán lehet használni.

Ha nem tetszik a külön felrakható dolog, akkor esetleg még be lehet tenni docker containerbe, és fölé hegeszteni egy egyszerű jelszavas SSL-el titkosított webszolgáltatást. Egy key - value storage-hez viszonylag egyszerűen írni lehet valami CRUD API-t, nem egy nagy kihívás egész. Gondolom így már meglenne a védelem is hozzá. De persze lehet, hogy tévedek, dockerrel nincs nagy rutinom. Nyilván ennek ára, hogy lassabb lesz az elérése, de egyszerű és biztonságosabbá teszi. Mondjuk én nem tudom mennyi extrát nyújt egy ilyen egy rendes adatbázishoz képest, aminek szintén a nagy része memóriában van tartva, hogy gyors legyen.
8

cache

Pepita · Már. 17. (Sze), 09.42
Ennek az alapvető lényege, hogy gyors elérésű, "puffer" tároló legyen, akár szálak, sőt, alkalmazások között is megosztva. Ugyanazt a matekot ne kelljen milliószor végigszámolni egy picike részeredményért, ha csak ritkán változik az eredménye. Főleg, ha "mindenki" számára ugyanaz az eredmény (tehát publikus).
"Erre jó": adott IP-n adott porton elérsz (több alkalmazással közösen) egy RAM tárolót, bármit beírhatsz és kiolvashatsz egyszerűen és gyorsan. Természetesen csak adott környezetekből érhető el (tűzfal), nem nyitott a külvilágra.

Ha valaki megtöri a kódodat, akkor nem az fog jobban fájni, hogy eléri a memcached-et is, hanem az, hogy a db-t éri el...
Talán egyszerűen szemlélteti a "hasznát" egy többszintes, fa struktúrájú menü. Adatbázisban szép nested tree, mellé kell joinolni még 2 táblát (mondjuk nyelv miatt), és valamilyen rekurzív mutatvánnyal legyártani belőle a html-t. Mivel publikus menü, butaság lenne minden egyes request kiszolgálásakor ezt végigjátszani, inkább nyelvenként berakjuk a cache-be a kész html-t. Így a menü kirakása annyiból áll, hogy először megnézzük a cache-ben, ha van - mehet is kifelé. Ha nincs, akkor gyártjuk és írjuk be cache-be.

De sok másra is jó, én nyers adatra is használom, ami sokszor kell és ritkán változik.
9

O.K., köszi (Re: Pepita)

mind1 valami név · Már. 17. (Sze), 22.03
Köszi, akkor én kicsit tévúton jártam.
Amikor keresni kezdtem, a redis volt az első jelölt, de az nem tárol struktúrákat, max. serializált formában, az meg nekem nem jó.
A memcached tudna mindent, csak ez, hogy bárki, bármikor beleszemetelhet, kicsit elvette a kedvem.

Egyébként abból indultam ki, hogy régen mi volt: tárhely szolgáltatás esetén csak virtuális szerver volt, abból meg gyakorlatilag bárki hozzáférhet és ami a legnagyobb baj, írhatja is a memcached tartalmát.

Adatbázishoz nem biztos, hogy hozzáfér egy script kiddie, de ilyenkor pl a memcached tartalmát agyonvághatja. (Szerintem)

Ui: külön ciki, hogy mire eljutottam odáig, hogy hálózat helyett socketen át is lehet kommunikálni vele, kiderült, hogy nincs lehetőség a benne tárolt összes kulcs lekérésére, így végképp nem nyert.
Szóval megint ott tartok, hogy esetemben a cache jellegű feladványhoz is inkább a mongodb a nyerő.

ui2: hát ez van... tíz év kihagyás után újrakezdeni... azt hittem, a mongodb is, meg a flask (python web microframework) is nagyon bonyolult dolgok. Évekig tologattam, hogy majd holnap... Egy hete valami "bekattant", a jelenlegi céljaimra a memcached és a redis nem igazán jó, mivel mélyebb adatstruktúrákat akarnék tárolni és lekérdezni a későbbiekben (pl. logszerverekről érkező adatokat), úgy fest, a mongo-val viszonylag egyszerű lesz. A legtöbb dolog legalábbis. Hogy egy insert miért írja felül a változót, aminek a tartalmát megkapja paraméterként, azon még dolgozom... :)
10

+1

Pepita · Már. 19. (P), 09.42
Örülök, ha tisztább lett a kép. :)
tárhely szolgáltatás esetén csak virtuális szerver volt, abból meg gyakorlatilag bárki hozzáférhet és ami a legnagyobb baj, írhatja is a memcached tartalmát

Nem biztos, hogy jól emlékszem, de mintha lenne valami prefixes varázslási lehetőség a memcached-nél is (adott tárhely nevével prefixeli az összes onnan érkező kulcsot), amivel szeparálható.
Ugyanakkor ha "tele" lesz, az egyik "user" miatt bukhatja egy másik az adatát.. Mondjuk csak úgy szoktuk használni, hogy "meg van még?" - ha nincs, matek és save.

mélyebb adatstruktúrákat akarnék tárolni és lekérdezni a későbbiekben
Ha keresgélni is kell az adatok között, akkor sokkal inkább adatbázisra van szükséged, nem cache technológiára. MongoDB tárolni jól tud (és sokat), keresni viszont nem annyira.
11

Eredetileg memóriában tárolok

mind1 valami név · Már. 19. (P), 10.53
Eredetileg memóriában tárolok mindent, viszonylag gyorsan lehet keresgélni benne. Viszont tegnapelőtt szoptam egy nagyot: memóriaba betöltöttem úgy egyhavi adatot, majd kétszer duplikáltam és... Swap híján csontra fagyott a linuxom. :D
Ezután előkaptam a mongot és rájöttem, hogy gyorsabb, mintha memóriában tárolom és úgy keresek. :)

Duplikáció:nem tudom, python mennyire ismerős... Ha értéket adok egy változónak, az elemi adat esetében értéket ad át, lista, dictionary stb esetében viszont referenciát.
Erre van egy .copy metódus, ami másolatot készít, de ha komplex struktúrám van (tömb a tömbben jellegű), azt úgy adja át, hogy a tárolt adatoknak továbbra is a referenciája megy. De van egy deepcopy modul, ami teljes másolatot készít. Na ekkora adatmennyiség mellett nem volt jó ötlet kipróbálni:D
És amilyen hülye vagyok, évek óta nincsenek processz limitek beállítva a gépemen, mer minek...