最近nodejsのmemcachedからredisに切り替えました。私がnode-memcachedで好きだったのは、私がJavaScriptのオブジェクト全体をメモリに保存できるということでした。悲しいことに私はレディスでこれを行うことができませんでした。私は何ができる3rd-Eden/node-memcachedでredisで入れ子になったjavascriptオブジェクトを保存する - NodeJS
var obj = {
name: "Hello world!",
author: "admin",
user: {
"yolololo" : {
"id": "352asdsafaseww",
"server": 5,
"data" : {
x: 1,
y: 1,
z: 50
}
},
"yolol" : {
"id": "358dsa",
"server": 7
}
}
}
:
memcached.set("obj", obj, 12345, function(err) { });
、その後
memcached.get("obj", function(err, data) {
console.log(data);
});
そして私は私が保存されたオブジェクトを取得します、例えば、私は、以下の目的を持ってそれはまさにその通りです。
redisclient.set("obj", obj, redis.print);
私は
redisclient.get("obj", function(err, data) {
console.log(data);
});
で値を取得すると、出力は[object Object]
を含む単なる文字列です:
のRedisの問題は、私はこのようなオブジェクトを保存した場合ということです。
私はredisがテキストベースのプロトコルであり、obj.toString()を実行しようとしていますが、memcachedはオブジェクトの世話をしているように見えます。 私はちょうど何ができると思った:JSON obj->文字列の場合はI/Oと私はわからないだろう
redisClient.set("obj", JSON.stringify(obj));
が、非常識なハイが存在しますので、私は、これは良いことかどうか分かりませんボトルネックになる(10k +要求/秒)。
MemcachedとRedisの両方がデータを文字列として保存しますが、オブジェクトを変換するための組み込み機能がありますか?すべてredisの
:
また、取得したテキストthis wayを解析します。 ** node-memcached **は自動的にシリアル化処理を行います。 – fardjad
@ fardjadはい、そうですが、Redisはそのような組み込みプロセスを持っていますか、それとも手動で変換する必要がありますか? – Deepsy