Où Redis peut-il être appliqué ? Cet article partagera avec vous 16 scénarios d'utilisation courants de Redis en une seule fois. J'espère qu'il sera utile à tout le monde !
【Recommandation associée : Tutoriel vidéo Redis】
Type de chaîne
Par exemple : cache de données chaudes (telles que des rapports, des tricheries de célébrités), un cache d'objets, un cache de page complète, qui peut améliorer les données d'accès aux données chaudes.
Type de chaîne, car Redis est un service indépendant distribué qui peut être partagé entre plusieurs applications
Par exemple : Session distribuée
<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>
La méthode setnx de type chaîne peut. ne sera ajouté avec succès que s'il n'existe pas. Il renvoie true
public static boolean getLock(String key) { Long flag = jedis.setnx(key, "1"); if (flag == 1) { jedis.expire(key, 10); } return flag == 1; } public static void releaseLock(String key) { jedis.del(key); }
int type, incrby, en utilisant atomicity
incrby userid 1000
Dans le scénario de sous-bibliothèque et de sous-table, obtenez un. section à la fois
type int, méthode incr
Par exemple : le nombre de lectures d'articles, le nombre de likes Weibo, autorisez un certain délai, écrivez d'abord sur Redis puis synchronisez régulièrement avec la base de données
int Type, méthode incr
utilise l'adresse IP du visiteur et d'autres informations comme clé Chaque visite augmente le nombre si le nombre dépasse le nombre, false est renvoyé
String. tapez bitcount (introduction de la structure de données bitmap dans la version 1.6.6)
Les caractères sont stockés dans un binaire de 8 bits
set k1 a setbit k1 6 1 setbit k1 7 0 get k1 /* 6 7 代表的a的二进制位的修改 a 对应的ASCII码是97,转换为二进制数据是01100001 b 对应的ASCII码是98,转换为二进制数据是01100010 因为bit非常节省空间(1 MB=8388608 bit),可以用来做大数据量的统计。 */
Par exemple : statistiques d'utilisateur en ligne, statistiques d'utilisateur conservées
setbit onlineusers 01 setbit onlineusers 11 setbit onlineusers 20
Prend en charge les opérations ET au niveau du bit, OU au niveau du bit, etc.
BITOPANDdestkeykey[key...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。 BITOPORdestkeykey[key...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。 BITOPXORdestkeykey[key...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。 BITOPNOTdestkeykey ,对给定 key 求逻辑非,并将结果保存到 destkey 。
Calculez les utilisateurs qui sont en ligne pendant 7 jours
BITOP "AND" "7_days_both_online_users" "day_1_online_users" "day_2_online_users" ... "day_7_online_users"
Chaîne ou hachage. Tous les hachages pouvant être effectués avec String peuvent être effectués
list, une liste doublement chaînée, peut être utilisée directement comme chronologie. Ordre d'insertion
La liste fournit deux opérations pop bloquantes : blpop/brpop, le délai d'attente peut être défini
L'opération ci-dessus. En fait, il s'agit de la file d'attente de blocage de Java. Plus vous apprenez de choses. Plus le coût d'apprentissage est faible
est livré avec une valeur aléatoire Get
spop myset
Si l'identifiant Weibo ci-dessus est t1001, l'identifiant utilisateur est u3001
Utilisez comme :t1001 pour maintenir tous les utilisateurs qui aiment ce Weibo sur t1001
N'est-ce pas beaucoup plus simple que la base de données ?
L'ancienne règle est d'utiliser tags:i5001 pour conserver toutes les balises du produit.
// 获取差集 sdiff set1 set2 // 获取交集(intersection ) sinter set1 set2 // 获取并集 sunion set1 set2
Supposons: iPhone11. est sur le marché
sadd brand:apple iPhone11 sadd brand:ios iPhone11 sad screensize:6.0-6.24 iPhone11 sad screentype:lcd iPhone 11
Les produits sélectionnés pour le concours proviennent d'Apple et d'iOS, avec des écrans entre 6.0 et 6.24. Le matériau de l'écran est un écran LCD
sinter brand:apple brand:ios screensize:6.0-6.24 screentype:lcd
suivez les fans Fans
. Suivez-vous les uns les autres :
Les personnes que je suis le suivent également (prendre l'intersection) :
Personnes que vous connaissez peut-être :
id 为6001 的新闻点击数加1:
zincrby hotNews:20190926 1 n6001
获取今天点击最多的15条:
zrevrange hotNews:20190926 0 15 withscores
Redis 用的好,加薪少不了
原文地址:https://juejin.cn/post/6994229128534687781
作者:码猿技术专栏
更多编程相关知识,请访问:编程视频!!
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!