当前位置:网站首页>Redis data type Daily use Scenarios
Redis data type Daily use Scenarios
2022-06-11 12:24:00 【Appelez - moi beau garçon.】
Un.、 String
1. Cache
Simplekey-valueStockage
2. Serrure distribuée
setnx key value,QuandkeyLorsqu'il n'existe pas,Oui.key La valeur de value ,Retour1;
Si donné key Existe déjà,EtsetnxPas d'action,Retour0.
QuandsetnxRetour1Heure,Indique l'acquisition de la serrure,Après l'opérationdel key,Indique la serrure de libération;Si setnxRetour0Indique que l'acquisition de la serrure a échoué,C'est comme ça que ça se passe
3. Compteur
RedisIl y a une commande liée à la chaîne dansincr key,incrLes commandes seront key La valeur numérique stockée dans augmente d'un,Les résultats retournés sont divisés en trois situations::
- La valeur n'est pas un entier,Erreur retournée
- La valeur est un entier,Renvoie le résultat depuis l'augmentation
- keyN'existe pas, key La valeur de sera initialisée à 0 ,Retour1
Comme la quantité de lecture d'un article,La quantité de lecture de la vidéo, etc., sera utiliséeredisComptez.,Chaque fois qu'il joue,La quantité de lecture correspondante sera augmentée de1,Ces données sont stockées de façon asynchrone dans la base de données à des fins de persistance..
set key 0
incr key // incr readcount::{Postsid} Chaque lecture
get key // get readcount::{Postsid} Obtenir la quantité de lecture
4. IPRestrictions
Pour des raisons de sécurité,Oui.IPLimiter,Limiter la même choseIP Le nombre de visites ne peut excéder NUne fois
2.、 List
Redis À l'intérieur. List C'est une liste de liens, Parce que la liste elle - même insère et supprime des blocs de comparaison , Mais les requêtes sont moins efficaces , Il est donc souvent utilisé comme file d'attente asynchrone .Redis À l'intérieur. List Le design est vraiment génial ,Quand la quantité de données est petite, La structure des données est une liste de liens compressés , Et quand il y a beaucoup de données, c'est une liste de liens rapides .
Le type de liste est utilisé pour stocker plusieurs chaînes ordonnées,Une liste peut être stockée jusqu'à2^32-1Éléments,Les éléments peuvent être insérés et éjectés aux deux extrémités de la Liste.
1.File d'attente des messages
Utilisation de files d'attente asynchrones dans les affaires rpush/lpush File d'attente des opérations,Utiliser lpop Et rpop Hors de la file d'attente,La structure spécifique est indiquée dans la figure ci - dessous.:
Redis Bien que la mise en file d'attente des messages soit prise en charge ,Mais pas de soutienack.Alors...redis La mise en file d'attente des messages ne garantit pas la fiabilité des messages , À moins que vous ne mettiez en place vous - même un mécanisme de confirmation des messages , Mais c'est très gênant , Donc si c'est un message important ou si c'est recommandé d'utiliser une file d'attente de messages dédiée .
2.Liste des articles
Parce que les éléments de la liste ne sont pas seulement ordonnés,Il prend également en charge l'obtention d'éléments par plage d'index.Donc nous pouvons utiliser les commandeslrange key 0 9Page pour la liste des articles
Trois、 Hash
Redis Le hachage permet à l'utilisateur de stocker plusieurs paires de valeurs clés en une seule Redis Dans la clé de , Le hachage est idéal pour stocker des données connexes ensemble .SimilairemapUne structure, Données à structurer ,Comme un objet(Si cet objet n'est pas imbriqué avec d'autres objets) Cache vers redisMoyenne, Chaque fois que vous lisez et écrivez la mémoire ,Pour pouvoir fonctionnerhashUn champ dans.
1.HashCode interne
Il existe deux types d'encodages internes de type hachage
- zipList(Liste compressée):Lorsque le nombre d'éléments de type hachage est inférieur àhash-max-ziplist-entriesConfiguration(Par défaut512- Oui.)Toutes les valeurs sont inférieures àhash-max-ziplist-valueConfiguration(Par défaut64Octets)À utiliser.ziplistStockage continu de plusieurs éléments avec une structure plus compacte,Donc plus quehashtablePlus d'économies de mémoire.
- hashtable(Table de hachage):QuandziplistSi les exigences ne sont pas respectées,Sera utiliséhashtable.
2.Utiliser le scénario
Parce quehash Le type stocke plusieurs paires de valeurs clés , Par exemple, la base de données a une structure de table utilisateur
| ID | NAME | age |
|---|---|---|
| 1 | Beau gosse. | 28 |
hset user:1 name Beau gosse. age 28
L'utilisation d'un Hash Store est plus facile et intuitive que les chaînes
Quatre、 set
setLe type de collection peut également enregistrer plusieurs éléments de chaîne,Contrairement à la liste,Les éléments dupliqués ne sont pas autorisés dans la collection et les éléments de la collection sont hors ordre.Une collection peut stocker jusqu'à2^32-1Éléments.
Ensemble désordonné,Dégraissage automatique,Mettre les données dansset On peut aller au milieu et ,Peut être basé surJVMDeHashSetPoids mort, Si le système est déployé sur plusieurs machines ,Ça marche.redisEffectuer un dégraissage global.Peut être basé sursetIntersection,Union,Fonctionnement de l'ensemble de différences.Ru - ji.2 Une liste personnelle de fans pour faire une intersection , Pour voir qui sont leurs amis communs .
1. Fonction de tirage au sort
La collection a deux commandes pour prendre en charge les nombres aléatoires,Respectivement.:
- Acquisition aléatoirecountÉléments,Le nombre d'éléments de la collection est constant
srandmember key [count]
- éjecter au hasardcountÉléments, Élément éjecté de la collection ,Changement du nombre d'éléments de la collection
spop key [count]
L'utilisateur clique sur le bouton de tirage au sort,Tirage au sort des paramètres,Placer le numéro d'utilisateur dans la collection,Et le tirage au sort,Tirez le premier prix séparément、Deuxième prix,Utilisé si l'utilisateur qui a gagné le premier prix ne peut pas paramétrer le deuxième prixspop,Utiliser au contrairesrandmember.
Cinq、 Zset(sorted set )
zset- Oui.Redis La structure de données la plus caractéristique de (Liste des sauts),D'abord, il asetCaractéristiques non reproductibles,Sur cette base,Je peux encorevalue Assigner un poids de tri score, Ce qu'on appelle l'ordre, c'est l'ordre basé sur ce score .Triéset, On peut le refaire ou le trier ,Donne un score quand tu l'écriras, Trier automatiquement par score , Les scores peuvent être triés sur mesure .
Redis Rassemblement ordonnézsetEt collectionssetC'est pareilStringCollection d'éléments de type,Et les membres en double ne sont pas autorisés.La différence est zset Chaque élément de est associé à une fraction(Les scores peuvent être répétés),redis Trier les membres d'une collection de petits à grands par fractions.RedisDezsetIl est né pour faire des classements.,La liste,Tableau général,Hot List.
1、zsetCode interne
Il existe deux types de codage interne pour les types d'ensembles ordonnés:
ziplist(Liste compressée):Lorsque le nombre d'éléments d'une collection ordonnée est inférieur àlist-max-ziplist-entriesConfiguration(Par défaut128- Oui.)Toutes les valeurs sont inférieures àlist-max-ziplist-valueConfiguration(Par défaut64Octets)À utiliser.ziplistStockage continu de plusieurs éléments avec une structure plus compacte,Plus d'économies de mémoire.
skiplist(Table de saut):Quand on n'est pas satisfaitziplistÀ la demande de,Sera utiliséskiplist.
2、Les classements
L'utilisateur a publiénArticle (s),D'autres apprécient l'article après l'avoir vu,UtiliserscorePour noter les points positifs,Les collections ordonnées seront basées surscoreClassement.Le processus est le suivant
L'utilisateur publie un articlea,Le nombre initial de points positifs est0,C'est - à - dire:scorePour0
zadd user:article 0 a
Quelqu'un a donné l'articlea- Oui.,Incrémental1
zincrby user:article 1 a
Les trois premiers articles
zrevrangebyscore user:article 0 2
Les trois derniers articles de la recherche sont
zrangebyscore user:article 0 2
Six、Bitmap
Sept、HyperLogLog(Base)
Huit、Geospatial (Index géospatial)
Neuf、Streams
边栏推荐
- Splunk manually synchronize search head
- 一般运维架构图
- Flink deployment mode and runtime architecture (session mode, single job mode, application mode, jobmanager, taskmanager, yarn mode deployment and runtime architecture)
- 电商发展的演变
- 2. Completablefuture
- saltstack安装与使用
- Flink data flow graph, parallelism, operator chain, jobgraph and executiongraph, task and task slot
- Jerry's aicmd command [chapter]
- General O & M structure diagram
- flink Window Join、Interval Join、Window CoGroup (两流匹配 指定key联结,开窗口进行窗口操作)
猜你喜欢

Generate statement is not synthesized

JMeter 学习心得

Moist or not? This is a problem

flink 窗口表值函数

Solving the problem of data garbled in sqlserver connection database (Chinese table)

ZABBIX installation and configuration application

Flick scrolling window, sliding window, session window, global window

11、Synchronized与锁升级

一般运维架构图

ftp服務器:serv-u 的下載及使用
随机推荐
Is reflection really time-consuming? How long does it take to reflect 100000 times.
CMD of Jerry's AI protocol_ SET_ BLE_ Visibility [chapter]
Objectinputstream read file object objectoutputstream write file object
Flink physical partition (random partition, polling partition, rescaling partition, broadcast, global partition, custom partition)
FTP server: downloading and using Serv-U
8、原子操作类之18罗汉增强
ftp服务器:serv-u 的下载及使用
14. Course summary and review
Where is it safer to open an account for soda ash futures? How much is the margin for soda ash futures?
Jerry's aicmd command [chapter]
Sulley fuzzer learning
CentOS installation mysql5.7
Installation and use of saltstack
Flick controls window behavior (trigger, remover, allow delay, put late data into side output stream)
Flink multi stream conversion (side output stream shunting, union, connect) real-time reconciliation of APP payment operations and third-party payment operations
近期使用nodejs pinyin包时遇到的问题
Redis数据类型日常使用场景
Error occurred when MySQL imported the database data in pagoda as 0000-00-00 and enum as null
Specflow环境搭建
flink 部署模式和运行时架构(会话模式、单作业模式、应用模式,JobManager、TaskManager,YARN 模式部署以及运行时架构)