Question

Autant que je sache, memcached fonctionne en mémoire et n'a pas de sauvegarde permanente.

Actuellement, mon équipe n'est pas encore prête à utiliser memcached.

Je prévois donc d'écrire une alternative simple basée sur une base de données.

Ma question est à peu près semblable à cette autre question

Connexions simultanées dans une batterie de serveurs Web

Mon application Web a des points d'entrée (connexion) et de sortie (déconnexion) clairs.

Le plan:

  1. Lors de la connexion, je vais ajouter l'ID utilisateur dans un tableau.
  2. À la déconnexion, je supprimerai la ligne contenant l'ID utilisateur.

Problèmes:

Existe-t-il une méthode bien utilisée pour expirer une ligne dans Mysql? Par méthode, je veux dire une meilleure pratique. Une fois le délai écoulé, la ligne est supprimée.

Était-ce utile?

La solution

il existe déjà une variante persistante pour memcache:

http://memcachedb.org/

consultez également le cabinet de Tokyo: http://1978th.net/ qui est censé être beaucoup plus rapide

R

EDIT: relire votre question. Laissez-moi ajouter ceci: La façon de mettre en place une heure est d’ajouter une colonne d’horodatage à votre base de données. La prochaine fois que vous obtiendrez l'élément mis en cache, vérifiez si l'horodatage est trop ancien, supprimez l'entrée à ce moment-là, obtenez une nouvelle copie et remettez-la dans le cache de la base de données avec un horodatage actuel.

C’est également ce que fait Memcache

Autres conseils

Vous ne savez pas ce que vous voulez dire par

  

Existe-t-il une méthode bien utilisée pour l'expiration du délai   une ligne dans Mysql?

nous utilisons Memcache comme moyen de mise en cache à base d’objets, il peut être défini sur une valeur à heure fixe

par exemple.;

MemcachedClient c= // get memcachedclient reference...

      if (c != null) {
            c.set(key, timeToLiveInSeconds, objectToCache);
        }

Après une période spécifiée, il sera automatiquement supprimé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top