Je fais un petit projet en utilisant Redis et le client js-redis 'node_redis'. Le problème est que, pour obtenir la valeur de la clé, il y a différentes fonctions get comme pour le type chaîne et entier il y a client.get, pour le type tableau il y a client.lrange() etc Alors comment identifier la fonction à utiliser obtenir la valeur si le type de valeur souhaité n'est pas connu, existe-t-il un moyen d'identifier le type de valeur.Comment savoir le type de valeur de la clé donnée dans redis dans le nœud js
0
A
Répondre
2
Utilisez la commande TYPE.
avec des promesses:
const Promise = require('bluebird')
const redis = Promise.promisifyAll(require('redis'))
const client = redis.createClient()
client.on("error", err => console.log("Error " + err))
client.typeAsync('foo').then(res => {
console.log('type: "%s"', res)
})
.finally(()=> {
client.quit()
})
Avec callbacks:
const redis = require('redis')
const client = redis.createClient()
client.on("error", err => console.log("Error: %s", err))
client.type('foo', (err, res) =>{
if (err) return console.log('Error: %s', err)
console.log('type: "%s"', res)
client.quit()
})
0
Habituellement, votre application doit connaître à l'avance le type de valeur à laquelle elle accède en utilisant un nom de clé donné. Cela dit, il y a le Redis TYPE
que vous pouvez utiliser pour inspecter le type d'une clé donnée.
est-il un moyen de le faire avec la synchronisation? Par exemple: var type = client.type ('foo'); –
@MikeBrianOlivera Je ne suis pas au courant, il y a quelques façons génériques de synchroniser les api asynchrones mais vous ne devriez généralement pas utiliser les méthodes de synchronisation car elles bloqueraient le processus lors de l'accès à redis. – Matt
pourriez-vous m'aider s'il vous plaît, c'est pour le mode de test. J'ai essayé votre code et de retour Aucun :( –