Maison  >  Article  >  interface Web  >  Explication détaillée des cas d'application de redis dans nodejs

Explication détaillée des cas d'application de redis dans nodejs

php中世界最好的语言
php中世界最好的语言original
2018-05-14 14:14:131826parcourir

Cette fois, je vais vous apporter une explication détaillée du cas d'application de redis dans nodejs. Quelles sont les précautions pour l'application de redis dans nodejs. Ce qui suit est un cas pratique, jetons un coup d'œil. .

redis est une base de données en mémoire avec de très bonnes performances. Elle est déployée comme une bibliothèque de données de cache entre l'application et les données mysql, ce qui peut grandement améliorer les performances de l'application. est une brève introduction au client nodejs. Le programme de démonstration pour le fonctionnement du terminal de redis

redis peut stocker un total de 5 types de données , qui sont des chaîne , liste, ensemble, trois colonnes et ensemble ordonné ; Nous traiterons ici des ajouts, suppressions et modifications de ces cinq types de données un par un

1. Installation de redis sur mac :

https://redis.io/download, la version stable actuelle que j'utilise est la 4.0.9. Après la décompression, entrez dans le répertoire redis-4.0.9, exécutez make && sudo make install et attendez un instant. quelques minutes pour l'installer ;

2 , démarrage de redis :

Exécutez redis-server sur la ligne de commande pour démarrer, le port par défaut est 6379 ; client :

Créez le répertoire redis-node, Après Yarn init -y dans ce répertoire, exécutez la commande : Yarn Add Redis pour installer le client redis de nodejs. Document de référence : https://github.com/. NodeRedis/node_redis

4. Dans redis- Dans le répertoire node, exécutez node sur le terminal, et vous pourrez exécuter le code nodejs de manière réactive sur le terminal pour le tester

. Tout d'abord, créez un client et connectez-vous au serveur redis. Après avoir exécuté la connexion suivante Avant le code client, assurez-vous que le serveur redis est en cours d'exécution : le fournisseur de terminal peut exécuter redis-server, le port par défaut est 6379 ; 🎜>

Si tout se passe bien, nous avons créé un client pour se connecter au terminal du serveur redis, les opérations suivantes sont effectuées sur l'objet client.

const redis = require('redis');
const client = redis.createClient(); //默认连接localhost:6379,具体配置参数可以参考文档https://github.com/NodeRedis/node_redis
1. Type de chaîne

Bien qu'il s'agisse d'un type de chaîne, les données qui peuvent être stockées incluent des chaînes, des entiers et des nombres à virgule flottante.

Par souci de simplicité, nous définissons une

fonction de rappel

pour sortir les données :
var res = client.set('name', 'abczhijia', (err, data) => {
 console.log('err: ', err, ' data: ', data);
}); // err: null data: OK,res的值是true
client.get('name', (err, data) => {
 console.log('err: ', err, ' data: ', data);
}); // err: null data: abczhijia

Faisons un test pour les entiers :

const cb = (err, data) => {
 console.log('err: ', err, ' data: ', data, ' data type: ', typeof data);
}
On peut voir que bien que le paramètre soit un entier, lorsqu'il est sorti, il s'agit en fait d'une chaîne, donc si vous souhaitez effectuer des calculs, vous devez effectuer vous-même la conversion dans la fonction de rappel

client.set('age', 20, cb); //err: null data: OK data type: string
client.get('age', cb); //err: null data: 20 data type: string
2, type de données de liste

Notez ici que l'opération de liste peut pousser une ou plusieurs données depuis le rpush droit, ou pousser une ou plusieurs données depuis le lpush gauche ;de plus, prenez Lors de la définition de la valeur, vous devez spécifier les positions de début et de fin. Si vous souhaitez obtenir la valeur entière, vous pouvez écrire la position de fin comme -1.

//从右侧推入
client.rpush('friends', 'mike', 'jhon', cb); //err: null data: 2 data type: number
client.lrange('friends', 0, -1, cb); //err: null data: [ 'mike', 'jhon' ] data type: object
//从左侧推入
client.lpush('friends', 'sam', 'bob', cb); //err: null data: 4 data type: number
client.lrange('friends', 0, -1, cb); // err: null data: [ 'bob', 'sam', 'mike', 'jhon' ] data type: object
//从右侧弹出
client.rpop('friends', cb); //err: null data: jhon data type: string
//从左侧弹出
client.lpop('friends', cb); //err: null data: bob data type: string
//打印看看发生了啥
client.lrange('friends', 0, -1, cb); // err: null data: [ 'sam', 'mike' ] data type: object
//查看索引位置的值
client.lindex('friends', 0, cb); // err: null data: sam data type: string
//对列表进行裁剪
client.rpush('friends', 'tom', 'bryant', cb)// err: null data: 4 data type: number
client.ltrim('friends', 1, 2, cb); //err: null data: OK data type: string
client.lrange('friends', 0, -1, cb); //err: null data: [ 'mike', 'tom' ] data type: object
3. Type de données de collecte

4. Type de données de hachage

//往集合ids中加几个元素
client.sadd('ids', 1, 2, cb); //err: null data: 2 data type: number
//查看集合元素
client.smembers('ids', cb); //err: null data: [ '1', '2' ] data type: object
//从集合中删除元素
client.srem('ids', 2, cb); // err: null data: 1 data type: number
//看看发生了啥
client.smembers('ids', cb); //err: null data: [ '1' ] data type: object
//看看集合有多少个元素
client.scard('ids', cb); //err: null data: 1 data type: number
//再加几个元素进去
client.sadd('ids', 3, 5, 8, 9); //
//判断元素是否在集合内
client.sismember('ids', 8, cb); // err: null data: 1 data type: number
client.sismember('ids', 80, cb); //err: null data: 0 data type: number

Je crois que je l'ai fait. vu Vous maîtrisez la méthode dans le cas de cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :
//往散列上添加多组键值对
client.hmset('phone', 'price', 5888, 'name', 'iphonex', cb); //err: null data: OK data type: string
//查看多个键的值
client.hmget('phone', 'price', 'name', cb); //err: null data: [ '5888', 'iphonex' ] data type: object
//查看键值对的数量
client.hlen('phone', cb); //err: null data: 2 data type: number
//删掉其中一个键值对
client.hdel('phone', 'price', cb); //err: null data: 1 data type: number
//看看price是否还在?
client.hmget('phone', 'price', cb); //err: null data: [ null ] data type: object,原来只留下了null
//再加几个属性
client.hmset('phone', 'vendor', 'apple', 'madein', 'china', cb);
//取出所有的键值对
client.hgetall('phone', cb); //err: null data: { name: 'iphonex', vendor: 'apple', madein: 'china' } data type: object
//取出所有的键
client.hkeys('phone', cb); //err: null data: [ 'name', 'vendor', 'madein' ] data type: object
//取出所有的值
client.hvals('phone', cb); //err: null data: [ 'iphonex', 'apple', 'china' ] data type: object
//判断键是否存在
client.hexists('phone', 'name', cb); //err: null data: 1 data type: number
client.hexists('phone', 'price', cb); //err: null data: 0 data type: number

Explication détaillée des étapes pour implémenter le plug-in de défilement plein écran dans ES6

A résumé de l'utilisation du module de journal nodejs winston

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