Redis操作コマンド大全(NodeJS版)
5394 ワード
/*——————————————————————————————
*このケースは、次の実行環境に基づいています.
*システム:CentOS 5.x
*NodeJSバージョン:0.9以上
*Redisバージョン:2.8
*Redis-nodejs拡張:0.12.1
/*——————————————————————————————
次のコマンドを使用します.
Redisインスタンス:
REDIS接続の作成
次のコードは、redis socket接続を作成し、redisサーバ情報、すなわちredis-cli INFOコマンドをクエリーすることを示します.
上のコードには、次のような問題があります.
1.サーバーが接続されていない場合、どうなりますか?
2.接続がタイムアウトした場合、どのように処理しますか?
以上の問題に対して、誤り処理をよりよく行うために、コードをいくつか修正する必要があります.これは良い習慣になります.
client.set(key,value,callback)、callback関数には2つのコールバックパラメータがあり、errorとresponse、errorは操作中のエラープロンプト値nullはエラーがないことを示し、responseはブール値
client.get(key,callback),callback関数には2つのコールバックパラメータがあり,errorとresponse,errorは操作中のエラープロンプト値nullはエラーがないことを示し,responseは取得した値,nullはデータ
client.hset(hashkey,field,value,callback)ハッシュデータ型、1番目のパラメータはKEY名、2番目は設定するフィールドKEY、3番目は値、4番目のパラメータはコールバックパラメータ、内容とsetが一致する
client.hmset(hashkey,field,value,field,value.....callback)ハッシュデータ型、最初のパラメータはKEY名、後のパラメータは不固定パラメータ、データフォーマットはkey,value,key,value
client.hget(hashkey,field,callback)hashデータのフィールド値
client.hgetall(hashkey,callback)は、フィールドと値
ブロックされたポップアップキューデータは、データの上部(左側)からポップアップされ、BLPOPが呼び出されると、所与のkey内に少なくとも1つの非空リストがある場合、遭遇した最初の非空リストのヘッダ要素がポップアップされ、ポップアップされた要素が属するリストの名前とともに、構成結果が呼び出し者に返される.複数の所与のkeyが存在する場合、BLPOPは所与のkeyパラメータの順に各リストを順次チェックする.構文:BLPOP key[key...]timeout
次のコードは、roban:demo:blpopというキューを10秒間ブロックし、データがあればすぐに左側からポップアップし、なければ10秒までブロックし続けます.
ブロックポップアップキューデータは、データの末尾(右側)からポップアップされ、複数のkeyパラメータが与えられた場合、パラメータkeyの前後順に各リストを順次チェックし、最初の非空リストの末尾要素をポップアップします.使用方法はBLPOPと一致しているが、データのポップアップ方法が異なる文法:BRPOP key[key...]timeout
1つ以上のメンバー要素を集合keyに追加すると、すでに集合に存在するメンバー要素は無視されます.keyが存在しない場合は、メンバーとしてmember要素のみを含むセットを作成します.keyがコレクションタイプでない場合、エラーが返されます.文法:SADD key member[member...]
コレクションkeyの基数(コレクション内の要素の数)を返します.構文:SCARD key
コレクション内のランダム要素を削除して返します.
ランダムな要素を1つだけ取得したいが、その要素をセットから削除したくない場合は、SRANDMEMBERコマンドを使用します.構文:SPOP key
コマンドの実行時にkeyパラメータのみが指定されている場合は、セット内のランダム要素を返します.SRANDMEMBERコマンドは、Redis 2.6のリリースからオプションのcountパラメータ1を受け入れます.countが正数であり、集合基数より小さい場合、コマンドはcount個の要素を含む配列を返します.配列内の要素はそれぞれ異なります.countが集合基数より大きい場合は、集合全体を返します.2.countが負数の場合、コマンドは配列を返します.配列内の要素は複数回繰り返され、配列の長さはcountの絶対値になります.この操作はSPOPと似ていますが、SPOPはランダム要素をセットから削除して返します.SRANDMEMBERはセットを変更せずにランダム要素だけを返します.
構文:SRANDMEMBER key[count]
*このケースは、次の実行環境に基づいています.
*システム:CentOS 5.x
*NodeJSバージョン:0.9以上
*Redisバージョン:2.8
*Redis-nodejs拡張:0.12.1
/*——————————————————————————————
Part 1:実装拡張
次のコマンドを使用します.
npm -g install redis
Redisインスタンス:
Host: 127.0.0.1 Port: 6379
Part 2:インスタンス
var redis = require("redis"),
client = redis.createClient(6379,"127.0.0.1");
client.info(function(err,response){
console.log(err,response);
});
// ,err null
REDIS接続の作成
次のコードは、redis socket接続を作成し、redisサーバ情報、すなわちredis-cli INFOコマンドをクエリーすることを示します.
var redis = require("redis");
var client = redis.createClient(6379,'127.0.0.1');
client.info(function(err,response){
console.log(err,response);
});
上のコードには、次のような問題があります.
1.サーバーが接続されていない場合、どうなりますか?
2.接続がタイムアウトした場合、どのように処理しますか?
以上の問題に対して、誤り処理をよりよく行うために、コードをいくつか修正する必要があります.これは良い習慣になります.
createClient(port,host,options)
, , IP/ , ,KEY=>VALUE
:
var client = redis.createClient(63719,'127.0.0.1',{connect_timeout:1}); //
:
Nodejs 2 ,1 try ... catch .. ,
, redisClient error , emmit , :
client.on('error',function(error){
console.log(error);
});
Set
client.set(key,value,callback)、callback関数には2つのコールバックパラメータがあり、errorとresponse、errorは操作中のエラープロンプト値nullはエラーがないことを示し、responseはブール値
client.set("Roban","lee",function(err,response){
console.log(err,response);
});
Get
client.get(key,callback),callback関数には2つのコールバックパラメータがあり,errorとresponse,errorは操作中のエラープロンプト値nullはエラーがないことを示し,responseは取得した値,nullはデータ
client.get("Roban",function(err,response){
console.log(err,response); //will print lee
});
が取得されていないことを示すHset
client.hset(hashkey,field,value,callback)ハッシュデータ型、1番目のパラメータはKEY名、2番目は設定するフィールドKEY、3番目は値、4番目のパラメータはコールバックパラメータ、内容とsetが一致する
client.hset("roban:demo:hset","today","fine",function(err,response){
console.log(err,response);
});
Hmset
client.hmset(hashkey,field,value,field,value.....callback)ハッシュデータ型、最初のパラメータはKEY名、後のパラメータは不固定パラメータ、データフォーマットはkey,value,key,value
client.hset("roban:demo:hset","lastday","notgood","nextday","willbefine",function(err,response){
console.log(err,response);
});
Hget
client.hget(hashkey,field,callback)hashデータのフィールド値
client.hset("roban:demo:hset","today",function(err,response){
console.log(err,response);
});
を取得するHgetall
client.hgetall(hashkey,callback)は、フィールドと値
client.hset("roban:demo:hset",function(err,response){
console.log(err,response);
});
を含むhashデータ種のすべてのデータを取得するBLpop
ブロックされたポップアップキューデータは、データの上部(左側)からポップアップされ、BLPOPが呼び出されると、所与のkey内に少なくとも1つの非空リストがある場合、遭遇した最初の非空リストのヘッダ要素がポップアップされ、ポップアップされた要素が属するリストの名前とともに、構成結果が呼び出し者に返される.複数の所与のkeyが存在する場合、BLPOPは所与のkeyパラメータの順に各リストを順次チェックする.構文:BLPOP key[key...]timeout
次のコードは、roban:demo:blpopというキューを10秒間ブロックし、データがあればすぐに左側からポップアップし、なければ10秒までブロックし続けます.
client.blpop("roban:demo:blpop",10,function(err,response){
console.log(err,response);
});
BRpop
ブロックポップアップキューデータは、データの末尾(右側)からポップアップされ、複数のkeyパラメータが与えられた場合、パラメータkeyの前後順に各リストを順次チェックし、最初の非空リストの末尾要素をポップアップします.使用方法はBLPOPと一致しているが、データのポップアップ方法が異なる文法:BRPOP key[key...]timeout
client.brpop("roban:demo:blpop",10,function(err,response){
console.log(err,response);
});
SADD
1つ以上のメンバー要素を集合keyに追加すると、すでに集合に存在するメンバー要素は無視されます.keyが存在しない場合は、メンバーとしてmember要素のみを含むセットを作成します.keyがコレクションタイプでない場合、エラーが返されます.文法:SADD key member[member...]
client.sadd("roban:demo:sdemo",hello,this,fuck,world,function(err,response){
console.log(err,response);
});
SCARD
コレクションkeyの基数(コレクション内の要素の数)を返します.構文:SCARD key
client.scard("roban:demo:sdemo",function(err,response){
console.log("Number of key roban:demo:sdemo is:" + response);
});
SPOP
コレクション内のランダム要素を削除して返します.
ランダムな要素を1つだけ取得したいが、その要素をセットから削除したくない場合は、SRANDMEMBERコマンドを使用します.構文:SPOP key
client.spop("roban:demo:sdemo",function(err,response){
console.log("Poped value of key roban:demo:sdemo is:" + response);
});
SRANDMEMBER
コマンドの実行時にkeyパラメータのみが指定されている場合は、セット内のランダム要素を返します.SRANDMEMBERコマンドは、Redis 2.6のリリースからオプションのcountパラメータ1を受け入れます.countが正数であり、集合基数より小さい場合、コマンドはcount個の要素を含む配列を返します.配列内の要素はそれぞれ異なります.countが集合基数より大きい場合は、集合全体を返します.2.countが負数の場合、コマンドは配列を返します.配列内の要素は複数回繰り返され、配列の長さはcountの絶対値になります.この操作はSPOPと似ていますが、SPOPはランダム要素をセットから削除して返します.SRANDMEMBERはセットを変更せずにランダム要素だけを返します.
構文:SRANDMEMBER key[count]
client.srandmember("roban:demo:sdemo",function(err,response){
console.log("Poped value of key roban:demo:sdemo is:" + response);
});