Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Bisakah redis menonaktifkan balasan untuk perintah pipelined?

Ya... di 2.6, setidaknya. Anda dapat melakukan ini dalam skrip LUA, dan hanya meminta skrip LUA mengembalikan hasil kosong. Ini dia menggunakan klien bookleeve:

const int DB = 0; // any database number
// prime some initial values
conn.Keys.Remove(DB, new[] {"a", "b", "c"});
conn.Strings.Increment(DB, "b");
conn.Strings.Increment(DB, "c");
conn.Strings.Increment(DB, "c");

// run the script, passing "a", "b", "c", "c" to
// increment a & b by 1, c twice
var result = conn.Scripting.Eval(DB,
    @"for i,key in ipairs(KEYS) do redis.call('incr', key) end",
    new[] { "a", "b", "c", "c"}, // <== aka "KEYS" in the script
    null); // <== aka "ARGV" in the script

// check the incremented values
var a = conn.Strings.GetInt64(DB, "a");
var b = conn.Strings.GetInt64(DB, "b");
var c = conn.Strings.GetInt64(DB, "c");

Assert.IsNull(conn.Wait(result), "result");
Assert.AreEqual(1, conn.Wait(a), "a");
Assert.AreEqual(2, conn.Wait(b), "b");
Assert.AreEqual(4, conn.Wait(c), "c");

Atau melakukan hal yang sama dengan incrby , dengan meneruskan angka "oleh" sebagai argumen, ubah bagian tengah menjadi:

// run the script, passing "a", "b", "c" and 1, 1, 2
// increment a & b by 1, c twice
var result = conn.Scripting.Eval(DB,
    @"for i,key in ipairs(KEYS) do redis.call('incrby', key, ARGV[i]) end",
    new[] { "a", "b", "c" }, // <== aka "KEYS" in the script
    new object[] { 1, 1, 2 }); // <== aka "ARGV" in the script


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah ada cara untuk membuat kunci tertentu ditemukan pada instance redis tertentu dalam mode cluster?

  2. Menyimpan kunci dengan awalan yang kedaluwarsa dalam redis

  3. Menjalankan kumpulan perintah menggunakan redis cli

  4. Redis sebagai generator id atom unik - Utas cara aman untuk aplikasi web untuk menghindari kondisi balapan

  5. Bagaimana cara mengatur cluster elasticache redis sebagai budak?