像网易新闻收藏的功能,如果使用redis做缓存的话,应该如何实现?
迷茫
迷茫 2017-04-22 08:59:31
0
4
789

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(4)
巴扎黑

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

巴扎黑

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

;
大家讲道理

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.

阿神

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal