12 Şubat 2021 Cuma

Redis - String Veri Yapısı

Giriş
Key olarak string, value olarak string kullanılır. SET, GET kullanılır. Açıklaması şöyle
Redis Strings are probably the most used (and abused) Redis data structure.

One of their main advantages is that they are binary-safe — This means you can save any type of binary data in Redis.

But as it turns out, most Redis users are serializing objects to JSON strings and storing them inside Redis.
İsmi String ama aslında Integer gibi sayılar için de kullanılabilir. Açıklaması şöyle
Q : Difference between storing Integers and Strings in Redis
A : No, there is no difference; both are stored as strings. 

Şeklen şöyle. Burada Simple Dynamic Strings (SDS) kullanıldığı görülebilir



DEL
Örnek
Şöyle yaparız
127.0.0.1:6379> SET foo "Hello World"
OK // setting a key

127.0.0.1:6379> GET foo
"Hello World" // getting a key

127.0.0.1:6379> DEL foo
(integer) 1 // key just got deleted

127.0.0.1:6379> GET foo
(nil) // since key is deleted therefore, result is nil.
INCR
Açıklaması şöyle
Increments the number stored at key by one. If the key does not exist, it is set to 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer. This operation is limited to 64 bit signed integers.

Note: this is a string operation because Redis does not have a dedicated integer type. The string stored at the key is interpreted as a base-10 64 bit signed integer to execute the operation.

Redis stores integers in their integer representation, so for string values that actually hold an integer, there is no overhead for storing the string representation of the integer.
Örnek
Şöyle yaparız. Burada value string olmasına rağmen integer gibi artırılabiliyor.
127.0.0.1:6379> incr y
(integer) 1
127.0.0.1:6379> incr y
(integer) 2
127.0.0.1:6379> get y
"2"
Unique ID üretmek için kullanılabilir. Şeklen şöyle


SETEX (Setting a key with an expiry)
Örnek
Şöyle yaparız. Verinin bayatlamasına ne kadar kaldığını görmek için TTL kullanılır
127.0.0.1:6379> SETEX foo 40 "I said, Hello World!"
OK // key has been set with 40 seconds as expiration 127.0.0.1:6379> TTL foo (integer) 36 // 36 seconds left to timeout

Hiç yorum yok:

Yorum Gönder