recherche

Maison  >  Questions et réponses  >  le corps du texte

像网易新闻收藏的功能,如果使用redis做缓存的话,应该如何实现?

像网易新闻收藏的功能,如果使用redis做缓存的话,应该如何实现?

迷茫迷茫2798 Il y a quelques jours792

répondre à tous(4)je répondrai

  • 巴扎黑

    巴扎黑2017-04-22 09:01:31

    Si l'actualité a un identifiant ou un identifiant unique. Vous pouvez envisager d'utiliser le type de collection Redis. Et le caractère unique de la collection évite les problèmes d’ajout en double !
    redis.sadd('personmark:userID',newsID);//Ajouter un élément à la collection utilisateur
    redis.smembers('personmark:userID');//Obtenir tous les identifiants d'actualité collectés par l'utilisateur en même temps

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-22 09:01:31

    Utiliser l'ensemble trié zset
    la clé est l'identifiant de l'utilisateur
    le membre est l'identifiant unique de l'actualité
    Le score est l'incrément de date à partir de la veille (par exemple, à partir du 1-1-2015, le score d'aujourd'hui est de 155 ?) ; une fois que vous avez le score, vous pouvez le sortir sans trier et l'afficher directement
    ; zadd(clé, score, membre):Ajouter des nouvelles
    zrank(key, member) : renvoie selon le score de petit à grand, c'est-à-dire que les nouvelles collectées sont triées par date du nouveau à l'ancien
    ; zrangebyscore(key, min, max) : renvoie une collection de scores du début à la fin, utilisée pour réaliser l'affichage des actualités en tournant les pages

    ;

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-22 09:01:31

    clé : news_fav_uid
    valeur : une collection d'identifiants d'actualités (tableau)
    où uid est l'ID utilisateur.
    $news_ids = tableau(1024,1025,1026);
    echo json_encode ($ news_ids);
    Peu importe que vous utilisiez Memcached/Redis/MySQL, vous pouvez le stocker comme ceci.
    array_push pousse la nouvelle collection à la fin du tableau $news_ids.
    Si vous souhaitez trier par heure, vous n'avez besoin que de json_decode pour décoder, array_reverse pour retourner le tableau, puis de foreach sortie.

    répondre
    0
  • 阿神

    阿神2017-04-22 09:01:31

    La réponse au 1er étage est très bonne, mais je veux juste ajouter qu'il n'est pas nécessaire d'utiliser redis comme cache ici, utilisez-le simplement comme stockage de données, car redis est aussi une base de données

    répondre
    0
  • Annulerrépondre