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

Perintah Kustom Redis

Sebagian besar waktu saat menunggu untuk menggunakan Perintah Redis baru, Anda harus menunggu versi terbaru ServiceStack.Redis untuk menambahkan dukungan untuk perintah baru juga ada kalanya Redis Client tidak menawarkan setiap permutasi yang didukung redis-server.

Dengan Custom baru dan RawCommand API di IRedisClient dan IRedisNativeClient Anda sekarang dapat menggunakan RedisClient untuk mengirim perintah kustom Anda sendiri yang dapat memanggil perintah Redis adhoc:

public interface IRedisClient
{
    ...
    RedisText Custom(params object[] cmdWithArgs);
}

public interface IRedisNativeClient
{
    ...
    RedisData RawCommand(params object[] cmdWithArgs);
    RedisData RawCommand(params byte[][] cmdWithBinaryArgs);
}

API Khusus ini mengambil object[] yang fleksibel argumen yang menerima nilai serial apa pun, mis. byte[] , string , int serta Jenis Kompleks yang ditentukan pengguna yang diserialisasikan secara transparan sebagai JSON dan dikirim melalui kabel sebagai byte UTF-8.

var ret = Redis.Custom("SET", "foo", 1);          // ret.Text = "OK"

byte[] cmdSet = Commands.Set;
ret = Redis.Custom(cmdSet, "bar", "b");           // ret.Text = "OK"

ret = Redis.Custom("GET", "foo");                 // ret.Text = "1"

Ada juga metode ekstensi yang nyaman di RedisData dan RedisText yang memudahkan untuk mengakses data terstruktur, misalnya:

var ret = Redis.Custom(Commands.Keys, "*");
var keys = ret.GetResults();                      // keys = ["foo", "bar"]

ret = Redis.Custom(Commands.MGet, "foo", "bar");
var values = ret.GetResults();                    // values = ["1", "b"]

Enum.GetNames(typeof(DayOfWeek)).ToList()
    .ForEach(x => Redis.Custom(Commands.RPush, "DaysOfWeek", x));
ret = Redis.Custom(Commands.LRange, "DaysOfWeek", 1, -2);
var weekDays = ret.GetResults();      

weekDays.PrintDump(); // ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]

dan beberapa contoh lainnya menggunakan Jenis Kompleks dengan API Khusus:

var ret = Redis.Custom(Commands.Set, "foo", new Poco { Name = "Bar" }); // ret.Text = "OK"

ret = Redis.Custom(Commands.Get, "foo");          // ret.Text =  {"Name":"Bar"}
Poco dto = ret.GetResult<Poco>();

dto.Name.Print(); // Bar

API ini digunakan di sebagian besar pustaka klien JavaScript redis.js UI Redis React di mana perintah server Redis tersedia melalui Layanan ServiceStack tunggal:

public object Any(CallRedis request)
{
    var args = request.Args.ToArray();
    var response = new CallRedisResponse { Result = Redis.Custom(args) };
    return response;
}

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa memunculkan objek dari Redis saat ditambahkan secara realtime?

  2. Copot pemasangan Redis di Mac OSX. Versi lama berjalan setelah menginstal pembaruan

  3. Apakah Redigo Redis Pool benar-benar seharusnya menjadi variabel global?

  4. Prototipe objek Node.JS hanya dapat berupa Objek atau nol dengan Redis

  5. Bagaimana cara mendapatkan semua pekerjaan yang tertunda di antrian laravel di redis?