Maison  >  Article  >  A quoi sert Redis

A quoi sert Redis

(*-*)浩
(*-*)浩original
2019-05-24 17:10:0542917parcourir

Le rôle de redis : 1. Obtenez les dernières n données ; 2. Obtenez les données TOP N ; 3. Définissez le temps de pointe précis ; 4. Implémentez le compteur ; définissez la commande pour créer un système anti-spam ; 7. Créez un système de file d'attente.

A quoi sert Redis

De nombreux amis sont confus après avoir passé du temps à apprendre la base de données Redis. Ils se sentent vides et ne savent pas ce qu'ils peuvent faire après avoir appris cette chose. , j'ai perdu la motivation de continuer à apprendre. Afin de permettre à chacun de continuer à avancer sur la voie de l'apprentissage de redis, je pense qu'il est nécessaire de compiler un guide simple et pratique des scénarios d'application de redis pour tout le monde.

1. Obtenez les dernières données

Afin de permettre à mes amis de mieux comprendre, je vais l'expliquer ici avec des exemples.

Exemple :

现在你在和讯网黄金频道上班,项目经理让你负责每天在频道首页生成一张数据表,来展示1个月内的国际黄金的开盘和收盘价格.如果
我们从mysql数据库中按时间排序取出,固然可以.但是你要考虑和讯网的并发量,和你排序时对资源的一个浪费程度.

À ce stade, nous devons choisir l'accès à la liste de redis. Nous savons que redis a une structure de données de file d'attente (liste), et il a également la caractéristique premier entré, premier sorti. Dans ce cas, je peux obtenir les dernières données sur 1 mois à portée de main. Une commande lrange peut simplement supprimer la valeur de l'intervalle souhaité.

2 Obtenez les données TOP N

L'exemple suivant, en regardant le titre, semble être similaire à la première application, mais il existe en fait quelques différences. Dans l'application 1, nous utilisons la fonctionnalité premier entré, premier sorti de la liste. à accéder en fonction du temps d'accès. Suivant Notre exemple est d'utiliser les caractéristiques des ensembles ordonnés pour résoudre des problèmes pratiques.

现在你受雇于APPLESTORE,项目经理要求你在商店首页,展示下载量排行前30的APP.
A ce moment, si vous pouvez penser à l'ensemble ordonné SortedSet dont nous avons parlé lors de notre processus d'apprentissage Redis, alors cela ne pourrait pas être mieux. Il nous suffit de générer un identifiant unique pour chaque application, de l'utiliser en tant que membre de la collection et d'utiliser le numéro de téléchargement comme score du membre. Ensuite, lorsque vous insérez ce score dans. la collection commandée, redis appuiera. Après le tri par taille, un ensemble ordonné sera naturellement formé. Au final, c'est à vous d'obtenir les N premières ou les N dernières données

3. temps d'achat urgent précis

Définir le temps d'achat urgent et de promotion Cette technologie est vraiment pratique dans le domaine du commerce électronique

现在你在阿里的淘宝事业部上班,领队组长分配你来完成一个限时抢购活动,某商品中午10:00开始进行抢购,1小时后,活动结束.
Ouais, puisque le temps est limité, il faut. se termine dans exactement 1 heure. À ce moment-là, nous apprenons que dans le processus de redis, la période de validité de la clé mentionnée est utile. Nous pouvons définir le délai d'expiration d'une clé active sur l'horodatage du moment d'expiration. pendant la ruée de l'utilisateur pour acheter. Ensuite, à ce moment-là, nous n'avons pas nécessairement besoin de stocker immédiatement les données soumises dans notre base de données sur disque dur. Lorsque l'utilisateur passe une commande, nous obtenons si la clé de l'activité a expiré. expirée, l'utilisateur est autorisé à passer la commande et les données de la commande sont temporairement mises en cache en mémoire. Une fois la clé expirée, il est interdit à l'utilisateur de passer une commande. En même temps, nous pouvons importer autant de commandes simultanées que nous venons de le faire. a fait dans la base de données du disque dur. Premièrement, nous pouvons obtenir un réglage précis de l'heure, et deuxièmement, nous pouvons faire face à la forte concurrence des achats précipités

Implémenter facilement des compteurs .

你目前就职的单位是中央全面深化改革领导小组技术顾问办公室,在过去如果全国人民一起选代表,既浪费人力又浪费财力.现在网络技术
发展了,习近平组长交代由你牵头开发点赞选人大平台.
接到这个项目,你是不是很犯难,13亿啊!可能同时集中在某个时间段,点赞,如此大的IO请求.硬盘数据库多少有些力不从心.哎,这个时候
你要运用上我们的内存数据库系统了,redis中对key的增incre,减decr不正适合你的需求么.

5. Supprimez les valeurs en double

Supprimez les valeurs en double, cela semble familier, notre MySQL n'a pas d'index unique Oh, eh bien, ce que je veux dire, c'est que la commande set pour les chaînes dans redis est plus utile.

你现在在下厨房平台,任职技术兼策划.你准备收集天下美食,苦于不知菜名.网络是有魔力的,人名群众的智慧是无穷的.你准备发动全
国的网友们,为你提供菜名,同时你还不想让大家发出相同菜名.
En voyant une telle question, pouvez-vous encore penser aux chaînes que nous apprenions auparavant sur Redis. Tapez, quand nous parlons de la commande set, nous parlons de la commande set ? situation par défaut. Lorsqu'aucun autre paramètre n'est donné, si notre clé n'existe pas, elle sera créée et ajoutée. Si la clé existe déjà, l'ancienne valeur écrase la nouvelle valeur. Dans ce cas, la valeur de la clé existe. N'est-ce pas le modèle dont nous avons besoin ?

6. Utilisez la commande set pour créer un système anti-spam

De nombreux amis ont été confus lorsqu'ils ont vu cela. Quand pourras-tu lutter contre le spam en cassant la commande set ? Hé, tu devrais être plus imaginatif, encore plus grand

上次你制作的统计菜名系统,领导会上先把你肯定了一番,然后义正言辞地说,小明啊,你这系统不太符合净网行动的要求啊,有些网友把一
些带有明显淫秽色情的菜名都提交到了系统.还被展示出来投票,这不荒唐吗?
Ça t'a fait peur et tu as pensé à étudier en XX. Éducation Cours d'architecture haute performance Mon collègue de bureau Xiaochuang au téléphone vous a dit que lorsque nous utilisons la commande set pour opérer sur une chaîne, donnez-lui un paramètre NX. De cette façon, la clé ne sera utilisée que lorsque la clé sera soumise par. l'utilisateur n'existe pas. Vous allez sur Internet et téléchargez un dictionnaire de mots sensibles et vous le configurez à l'avance dans la base de données. Après avoir écouté les conseils de Xiaopang, vous serez soulagé lorsque vous serez nerveux.

7. Utilisez publier et vous abonner dans les commandes SUBSCRIBE et PUBLISH pour créer un système de transmission de messages en temps réel

费了老鼻子劲,你终于进入了新浪微博事业部.第二天组长找到正埋头苦干的你.小明,咱们微博也要搞个跟FB一样一样的关注功能,搞大
V认证,大V一发消息,赶紧推送给关注的那群XX,让XX跟大V赶紧互动起来.以此来提高用户粘性.组长走后,”赶紧,推送”,这两个词在你的耳畔不时地回响.
Vous pensez encore à Xiaopang que Xiaopang vous a dit au téléphone. qu'il existe des fonctions d'abonnement et de publication dans Redis. Vous raccrochez le téléphone et c'est parti. Après une recherche sur le site Web informatique d'auto-apprentissage, cela s'est avéré comme prévu. Un abonnement peut s'abonner à différents modèles d'utilisateurs tant que le modèle correspondant a un. publiez l'implémentation, l'abonné peut recevoir des messages push en temps réel. Bien que vous ne soyez pas Wang Dachui, vous ne vous y attendiez pas. Redis a en fait une telle fonction.O(∩_∩)O Haha~

. 8. Construisez un système de file d'attente

忙完微博的事,正准备收拾东西去挤地铁的你.突然被组长叫住了.
小明,你虽然完成了微博关注和推送的技术架构.但是这几天又有个新问题出现了.因为FB用不了,微博用户暴增.特别是认证大V的用户越
来越多,就连门口烤红薯的大爷早上还拽着我说,给他整个大V吧,俺不差钱.老板为了缓解认证方面的压力,已经开始收费认证了,但是还是
挡不住这群XX.赶上过节饭点,大V们几乎同时发微博,推送服务器有点压力.你把这个问题解决了,再走吧,晚点回去打车公司报销.然后打
完卡他走了.

“同时发微博”,”同时推送,服务器压力大”.你从电脑中找到了小胖之前发给你的那本redis自学笔记,笔记上说.我们可以将若干个需要执行的事件加入队列,然后按时间的顺序去逐个逐个的执行.这个时候你又想到了一个提高用户互动性的好办法.我能不能让粉丝数目多的大V的微博优先推送呢?毕竟粉丝基数大,影响大,总能搞出一个大新闻.既然这样,我直接使用有序队列不就行了.把一个个大V的微博推送事件ID存入有序队列,同时依据粉丝数给予权重(或说优先级).不就可以达到我们的需求了么.

9. 缓存

这一点大家应该很熟悉了,它可以像memcache一样充当缓存数据库.不过的它的数据类型比memcache多的多,应对场景自然要比memcache丰富的多.比较时髦的用法是,用其来缓存会话哦.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn