Comment utiliser les types de données spéciaux de Redis
1. Statistiques de cardinalité HyperLogLog
1.1 Qu'est-ce que la cardinalité ?
Nous pouvons comprendre ce que sont les statistiques de cardinalité directement à travers un exemple, tel que l'ensemble de données {1, 2, 3, 3, 5, 5,}, alors l'ensemble de cardinalité de cet ensemble de données est { 1, 2, 3, 5}, la base (éléments non répétitifs) est 4. C'est-à-dire que c'est le nombre d'éléments non répétitifs.
1.2 Avantages de l'utilisation des statistiques de cardinalité
Chaque clé HyperLogLog ne coûte que 12 Ko de mémoire et peut calculer la cardinalité de près de 2^64 éléments différents. Cela contraste fortement avec une collection qui consomme plus de mémoire lors du calcul de la cardinalité. Plus il y a d'éléments, plus la mémoire est consommée. Si vous souhaitez comparer du point de vue de la mémoire, Hyperloglog est le premier choix.
1.3 Scénario d'application
uv d'une page Web (une personne visite un site Web plusieurs fois, mais est toujours comptée comme une seule personne)
- #🎜 🎜#
- Méthode traditionnelle : set (car set ne permet pas la duplication et sera écrasé s'il est répété) enregistre l'ID de l'utilisateur, puis des statistiques peuvent être établies. Le nombre d'éléments dans l'ensemble est utilisé comme jugement standard. Si un grand nombre d'ID utilisateur sont enregistrés avec cette méthode, cela sera fastidieux et occupera beaucoup de mémoire dans les grands sites Web. Notre objectif est de compter, pas de sauvegarder les identifiants des utilisateurs.
- Utiliser HyperLogLog : Une clé HyperLogLog ne nécessite que 12 Ko, mais le nombre qui peut être calculé est très énorme et l'espace mémoire occupé est considérablement réduit.
Commandes et descriptions | #🎜 🎜 # |
---|---|
PFADD key element [element ...] | Ajoutez l'élément spécifié à HyperLogLog.|
PFCOUNT key [key ...] | Renvoie l'estimation de cardinalité pour l'HyperLogLog donné.|
PFMERGE destkey sourcekey [sourcekey ...] | Fusionner plusieurs HyperLogLogs en un seul HyperLogLog #🎜 🎜# |
- ? ??? Afficher les personnes à proximité
- ???? Calculer la distance en taxi
- 2.3 Commandes de base# 🎜 🎜#
1#🎜 🎜# | |
---|---|
Ajouter l'emplacement géospatial spécifié (latitude, longitude, nom) à la clé spécifiée | #🎜🎜 ##🎜 🎜#2 GEOPOS key location name |
3 GEODIST key Emplacement 1 Emplacement 2 Unité | |
4 | GEORADIUS clé longitude latitude plage unité numérique |
5 #🎜 🎜 #GEORADIUSBYMEMBER key Unité numérique de distance de localisationTrouver l'élément situé dans la plage spécifiée Le point central est déterminé par l'élément de position donné | |
GEOHASH key Emplacement 1 Emplacement 2 renverra une chaîne Geohash de 11 caractères Si les deux chaînes sont proches, plus elles sont proches. | |
zrange key start stopObtenir les informations de coordonnées dans la clé spécifiée#🎜 🎜 # | |
emplacement de la clé zrem | Supprimer les données de la cible spécifiée sous la clé spécifiée# 🎜🎜## 🎜🎜# 查询地点经纬度: 城市经纬度查询-国内城市经度纬度在线查询工具 2.4 详细讲解2.4.1 GEOADD作用:添加地理位置 规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入! 语法:GEOADD key 经度 纬度 地点名称 注意事项 有效的经度从-180度到180度。 有效的纬度从-85.05112878度到85.05112878度。 当坐标位置超出上述指定范围时,该命令将会返回一个错误。 使用 #添加单个信息 127.0.0.1:6379> geoadd address 116.708463 23.37102 shantou (integer) 1 #添加多个信息 127.0.0.1:6379> geoadd address 116.405285 39.904989 beijin 121.472644 31.231706 shanghai (integer) 2 Copier après la connexion 2.4.2 GEOPOS作用:获得指定地点的位置信息(经纬度) 语法:GEOPOS key 地点名称 使用 127.0.0.1:6379> geopos address beijin #获得北京的地理位置 1) 1) "116.40528291463851929" #经度 2) "39.9049884229125027" #纬度 Copier après la connexion 2.4.3 GEODIST作用:返回两个给定位置之间的距离,如果两个位置之间的其中一个不存在, 那么命令返回空值。 语法:GEODIST key 地点1 地点2 单位 单位参数:
如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位。 使用: 127.0.0.1:6379> geodist address beijin shanghai km #查询北京与上海之间的距离 "1067.5980" Copier après la connexion 2.4.4 GEORADIUS作用:以给定的经纬度为中心, 找出某一半径内的元素。 语法:GEORADIUS key 经度 纬度 范围数值 单位 使用: #查找以116,39这个经纬度为中心,寻找方圆1500km的城市 127.0.0.1:6379> georadius address 116 39 1500 km 1) "shanghai" 2) "beijin" # 显示到中间距离的位置 127.0.0.1:6379> georadius address 116 39 1500 km withdist 1) 1) "shanghai" 2) "996.7313" 2) 1) "beijin" 2) "106.5063" #显示他人的定位信息 127.0.0.1:6379> georadius address 116 39 1500 km withcoord 1) 1) "shanghai" 2) 1) "121.47264629602432251" 2) "31.23170490709807012" 2) 1) "beijin" 2) 1) "116.40528291463851929" 2) "39.9049884229125027" #筛选出最近的城市以及显示其距离 127.0.0.1:6379> georadius address 116 39 1500 km withdist withcoord count 1 1) 1) "beijin" 2) "106.5063" 3) 1) "116.40528291463851929" 2) "39.9049884229125027" #筛选最近两个城市以及显示其距离 127.0.0.1:6379> georadius address 116 39 1500 km withdist withcoord count 2 1) 1) "beijin" 2) "106.5063" 3) 1) "116.40528291463851929" 2) "39.9049884229125027" 2) 1) "shanghai" 2) "996.7313" 3) 1) "121.47264629602432251" 2) "31.23170490709807012" Copier après la connexion 2.4.5 GEORADIUSBYMEMBER作用:找出位于指定范围内的元素,中心点是由给定的位置元素决定。 语法:GEORADIUSBYMEMBER key 地点 距离数值 单位 使用: #找出距离北京方圆1500km内的城市 127.0.0.1:6379> georadiusbymember address beijin 1500 km 1) "shanghai" 2) "beijin" Copier après la connexion 2.4.6 GEOHASH作用:将返回11个字符的Geohash字符串,如果两个字符串越接近,那么则距离越近。 语法:GEOHASH key 地点1 地点2 ???? 使用: 127.0.0.1:6379> geohash address beijin shantou 1) "wx4g0b7xrt0" 2) "ws4uzy8d030" Copier après la connexion 2.4.7 ZRANGE作用:获得指定key中坐标信息。 语法:zrange key start stop 使用: 127.0.0.1:6379> zrange address 0 -1 1) "shantou" 2) "shanghai" 3) "beijin" Copier après la connexion 2.4.8 ZREM作用:删除指定key下指定目标的数据。 语法:zrem key 地点 使用: 127.0.0.1:6379> zrem address shanghai (integer) 1 Copier après la connexion 三、BitMap介绍BitMap是通过一个bit位来表示某个元素对应的值或者状态,只有0 和 1 两个状态,其中的key就是对应元素本身。365 天 = 365 bit ,1字节 = 8bit ,也就是说统计一年的用户状态只需要46 个字节左右,所以其能够节省很大的空间。 应用场景
使用
127.0.0.1:6379> setbit sign 0 1 (integer) 0 127.0.0.1:6379> setbit sign 1 1 (integer) 0 127.0.0.1:6379> setbit sign 2 0 (integer) 0 127.0.0.1:6379> setbit sign 3 1 (integer) 0 127.0.0.1:6379> setbit sign 4 1 (integer) 0 127.0.0.1:6379> setbit sign 5 0 (integer) 0 127.0.0.1:6379> setbit sign 6 0 (integer) 0 Copier après la connexion 查看某一天是否有打卡 127.0.0.1:6379> getbit sign 3 (integer) 1 127.0.0.1:6379> getbit sign 6 (integer) 0 Copier après la connexion 统计本周的打卡记录 127.0.0.1:6379> bitcount sign (integer) 4 Copier après la connexion |
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

1. Démarrez le menu [Démarrer], entrez [cmd], cliquez avec le bouton droit sur [Invite de commandes] et sélectionnez Exécuter en tant qu'[Administrateur]. 2. Entrez les commandes suivantes dans l'ordre (copiez et collez soigneusement) : SCconfigwuauservstart=auto, appuyez sur Entrée SCconfigbitsstart=auto, appuyez sur Entrée SCconfigcryptsvcstart=auto, appuyez sur Entrée SCconfigtrustedinstallerstart=auto, appuyez sur Entrée SCconfigwuauservtype=share, appuyez sur Entrée netstopwuauserv , appuyez sur Entrée netstopcryptS.

Les goulots d'étranglement des fonctions PHP entraînent de faibles performances, qui peuvent être résolues en suivant les étapes suivantes : localisez la fonction de goulot d'étranglement et utilisez des outils d'analyse des performances. Mise en cache des résultats pour réduire les recalculs. Traitez les tâches en parallèle pour améliorer l’efficacité de l’exécution. Optimisez la concaténation des chaînes, utilisez plutôt les fonctions intégrées. Utilisez des fonctions intégrées au lieu de fonctions personnalisées.

La stratégie de mise en cache dans GolangAPI peut améliorer les performances et réduire la charge du serveur. Les stratégies couramment utilisées sont : LRU, LFU, FIFO et TTL. Les techniques d'optimisation incluent la sélection du stockage de cache approprié, la mise en cache hiérarchique, la gestion des invalidations, ainsi que la surveillance et le réglage. Dans le cas pratique, le cache LRU est utilisé pour optimiser l'API pour obtenir des informations utilisateur à partir de la base de données. Les données peuvent être rapidement récupérées du cache. Sinon, le cache peut être mis à jour après l'avoir obtenu à partir de la base de données.

Dans le développement PHP, le mécanisme de mise en cache améliore les performances en stockant temporairement les données fréquemment consultées en mémoire ou sur disque, réduisant ainsi le nombre d'accès à la base de données. Les types de cache incluent principalement le cache de mémoire, de fichiers et de bases de données. En PHP, vous pouvez utiliser des fonctions intégrées ou des bibliothèques tierces pour implémenter la mise en cache, telles que cache_get() et Memcache. Les applications pratiques courantes incluent la mise en cache des résultats des requêtes de base de données pour optimiser les performances des requêtes et la mise en cache de la sortie des pages pour accélérer le rendu. Le mécanisme de mise en cache améliore efficacement la vitesse de réponse du site Web, améliore l'expérience utilisateur et réduit la charge du serveur.

L'utilisation du cache Redis peut considérablement optimiser les performances de la pagination du tableau PHP. Cela peut être réalisé en suivant les étapes suivantes : Installez le client Redis. Connectez-vous au serveur Redis. Créez des données de cache et stockez chaque page de données dans un hachage Redis avec la clé « page : {page_number} ». Récupérez les données du cache et évitez les opérations coûteuses sur les grandes baies.

Vous devez d’abord définir la langue du système sur l’affichage chinois simplifié et redémarrer. Bien sûr, si vous avez déjà modifié la langue d'affichage en chinois simplifié, vous pouvez simplement ignorer cette étape. Ensuite, commencez à utiliser le registre, regedit.exe, accédez directement à HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage dans la barre de navigation de gauche ou dans la barre d'adresse supérieure, puis modifiez la valeur de la clé InstallLanguage et la valeur de la clé par défaut sur 0804 (si vous souhaitez la changer en anglais en- nous, vous devez d'abord définir la langue d'affichage du système sur en-us, redémarrer le système, puis tout changer en 0409). Vous devez redémarrer le système à ce stade.

Oui, Navicat peut se connecter à Redis, ce qui permet aux utilisateurs de gérer les clés, d'afficher les valeurs, d'exécuter des commandes, de surveiller l'activité et de diagnostiquer les problèmes. Pour vous connecter à Redis, sélectionnez le type de connexion « Redis » dans Navicat et saisissez les détails du serveur.

1. Tout d'abord, double-cliquez sur l'icône [Ce PC] sur le bureau pour l'ouvrir. 2. Double-cliquez ensuite sur le bouton gauche de la souris pour accéder à [Lecteur C]. Les fichiers système seront généralement automatiquement stockés dans le lecteur C. 3. Recherchez ensuite le dossier [windows] dans le lecteur C et double-cliquez pour entrer. 4. Après avoir accédé au dossier [windows], recherchez le dossier [SoftwareDistribution]. 5. Après avoir entré, recherchez le dossier [télécharger], qui contient tous les fichiers de téléchargement et de mise à jour Win11. 6. Si nous souhaitons supprimer ces fichiers, supprimez-les simplement directement dans ce dossier.
