Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

14 Haziran 2014 Cumartesi

Redis ve ServiceStack İncelemesi

Redis nedir üzerine epeyce okurken, "neden bunları not almıyorum" diye aklımdan geçirdim ve tüm alıntı, çalıntı bilgileri bir de benim anlayış hizama göre sıralamak istedim. Kendime not almaya devam ediyorum :)

Kaynaklar:
Redis Komutları
http://kodluyorum.blogspot.com.tr
http://gurevin.net/2013/04/05/nosql-iliskisel-veritabanlarina-karsimi/
En temiz şekilde veri tiplerini anlamak için



SET

Tek seferde tek değeri anahtarlamak için kullanılıyor
127.0.0.1:6379> set anahtar deger
OK

MSET

Tek seferde birden fazla değeri anahtarlamak için kullanılıyor ve Redis'e defalarca gidip dönmektense işlemi tek seferde hallettiği için doğal olarak daha hızlı oluyor.
127.0.0.1:6379> mset anahtar1 deger1 anahtar2 deger2
OK

ServiceStack ile MSET




MGET


(GetValues ya da GetValuesMap), ile tek çağrıda birden fazla anahtarın değerini alabiliriz.
***On the ServiceStack.Redis client you can use GetValues or GetValuesMap (both string and T apis are available) for fetching multiple values (uses MGET) in a single call. Only existing items are returned, which you can detect with GetValues if you have Id's on your models or GetValuesMap which returns a dictionary of existing keys and their values.

Pipelining de MSET'e benziyor ve sonuçlarını anında görmemize gerek olmayan işlemleri gruplayarak tek seferde gönderiyor ve yine doğal olarak hızlı çalışıyor.
Use Pipelining or Transactions***If for some reason you really only want to check the existence of keys in Redis without fetching them, then you can use a Transaction / or Pipeline (both are pipelined) to queue up multiple operations that gets sent to Redis in 1 socket write. Here's an example of this from RedisStackOverflow demo that queues up 30 operations that gets send and executed in a single batch.

SELECT,

ile Redis üzerinde DB seçebiliriz.Parametre 0..n kadar int değer olur.

FLUSHALL,

ile seçili veritabanı içindeki verileri sileriz. ServiceStack içinde komutları void FlushDb(); ve void FlushAll(); olarak geçiyor.

Veri Tipleri

String olarak Object insert

Basit olarak string tipinde veri kaydı ve çekilmesi.
127.0.0.1:6379> set anahtar deger
OK
127.0.0.1:6379> get anahtar 
"deger"

ServiceStack ile

değer kısmına JSON formatında nesnemizi yazabiliriz. Her TC vatandaşının temel bilgilerinin kaydını düşünelim.

NodeJS Redis ile

var redis = require('redis'),
    c = redis.createClient(),

    a = c.SET("users:1", '{"name":"Fred","age":25}');

LIST

Bir anahtar içine List olarak verileri yazalım:


Sonuç:


SETs



Farklı anahtar için veri girişi:

HASHES