wordt memcached door een ander virtueel besturingssysteem te instantiëren?

Ik heb een paar zelfstudies op memcached gelezen en ik heb een paar vragen, om de pijn van verzoeken naar de standaarddatabase te verminderen.

What is being instantiated to allow memcached to operate?
Is it virtual operating systems with say MySQL installed or is the database in its entirety being stored in ram?

Mijn andere vraag is dat ik een blog heb en memcache gebruik en een gebruiker komt om gegevens aan te vragen van de browser en de aanvraag controleert eerst de memcache voor de gegevens en ziet dat de gegevens bestaan ​​en wordt weergegeven voor die gebruiker.

What if the data being requested doesn't match what is on the original database because i had updated it myself. how will the cache know that i changed it?
Is it always checking to see if the data on the db is the same as what is cached?

0
Kun je je eigen vraag eigenlijk begrijpen?
toegevoegd de auteur Macmade, de bron

2 antwoord

1
You will start a memcached server in every machine you need, assigning an amount of memory to dedicate to memcached.
Then with the library memcached you will use the amount of memory on every single server.
NB There is no manner to know in which server a single object will be stored.

2
The mechanism of duplicates is easy: you can set a timeout for the object. When the timeout elapses the system will delete that object.
To store an object you will assign to that object a key as an hash because you don t want that 2 object have the same key.

0
toegevoegd
In plaats van te verwijderen, markeert het op een time-out het als ongeldig en kan worden overschreven, maar het wordt niet verwijderd alleen door te vervallen.
toegevoegd de auteur StormByte, de bron

Van de memcached hoofdpagina :

Memcached is een sleutel/waardeopslag in het geheugen voor kleine brokken willekeurige gegevens (strings, objecten) uit resultaten van databaseaanvragen, API-aanroepen of paginaweergave.

Hoewel memcached vaak wordt gebruikt met MySQL, heeft het geen specifieke binding met MySQL of een andere database. Het is gewoon een eenvoudige sleutelwaardeopslag die constante tijd (O (1)) toegang biedt tot gegevens die met de sleutel worden opgeslagen. De gegevens worden in het geheugen opgeslagen door het memcached-proces. (Veel van dit wordt uitgelegd in de FAQ ).

Wat betreft uw tweede vraag, het is echt uw applicatie/uw verantwoordelijkheid om ervoor te zorgen dat memcached op de hoogte wordt gesteld van eventuele wijzigingen. U kunt dit doen via redelijke vervalperioden in uw cachegegevens of door een script of de opdrachtregelinterface te gebruiken om oude gegevens handmatig te verwijderen. Sommige frameworks zullen omgaan met memcached van wijzigingen, mits de wijziging wordt doorgevoerd via het framework. Uiteindelijk, als u ervoor moet zorgen dat gebruikers altijd in realtime toegang hebben tot de nieuwste gegevens, dan is caching geen goede oplossing voor uw probleem. Caching werkt op het principe dat het ok is om af en toe verouderde gegevens te serveren - u moet uw toepassing zodanig construeren dat deze gegevens opslaat die verouderd kunnen zijn, maar gebruikt altijd opzoekingen naar gezaghebbende bronnen voor gegevens die moeten wees vers.

0
toegevoegd