Python ile Redis server nasıl kullanılır bu konuya değinmek istiyorum, ama öncesinde Redis buna bir göz atalım.
Redis Nedir?
Açık kaynak kodlu key-value yani anahtar-değer deposudur. Çeşitli veri yapılarını içerisinde barındırabilir. Böylece veri tabanına ihtiyaç duymadan çeşitli küçük uygulamalar geliştirebilirsiniz. Daha fazlası için araştırma yapabilirsiniz.
Redis kütüphanesini kullanabilmek için öncelikle redis serveri yüklemeniz gerekmektedir. Linux üzerinde paket depolarından yükleyebilirsiniz.
sudo apt-get install redis-server
Bu komut serveri sisteme kuracaktır, ek ayar gerektirmez. Daha sonra pip yada easy_install ile Python için Redis kütüphanesini yüklemek gerekiyor.
sudo pip install redis
Kurulum işlemi bittiyse kullanmaya geçelim.
Redis Kütüphanesini Kullanmak
Kütüphaneyi kullanmak için içeri aktarıp bağlantı yapmamız gerekiyor.
import redis redser = redis.StrictRedis(host="localhost", port=6379, db=0)
Redis 6379. portu kullandığı için bu portu yazdık. Ve localhost üzerinde çalıştığımız için localhost girdik. İsterseniz kabaca localhost diyerek de bağlanabilirsiniz.
import redis redser = redis.Redis("localhost")
Tercih size kalmış. Bundan sonrası Python Sözlüklerde ki key-value sistemi ile aynı zaten. Tanımlama yapmak için set fonksiyonunu, tanımlı değeri çekmek için get fonksiyonunu kullanıyoruz.
redser.set("isim", "yunus emre") print(redser.get("isim"))
Böylece tıpkı sözlüklerde olduğu gibi değerleri çekip kullanabiliriz. Silme işlemi için delate fonksiyonunu kullanıyoruz.
redser.delete("isim")
Eğer ki hafızaya atadığınız anahtarın belirli bir süre hafızada kalmasını istiyorsanız expire fonksiyonunu kullanmanız gerekiyor.
redser.set("anahtar"=>"değer") redser.expire("anahtar",5)
Böylece expire fonksiyonunda belirttiğimiz süre aşılınca anahtar silinmiş olacaktır.
Anahtar değerini arttırmak ve azaltmak için ise incr ve decr fonksiyonları kullanılır.
redser.set("adet", 1) redser.incr("adet") # Değeri 1 Arttırdık. redser.decr("adet") # Değeri 1 Azalttık.
Görüldüğü gibi incr değer arttırmak için kullanılırken decr ise değeri azaltmak için kullanılıyor. Son olarak ise değerin uzunluğunu ölmek için ise llen fonksiyonu kullanılıyor. Python da ki len() ile aynı işi görmekte.
print(redser.llen("isim"))
Sanırım temel düzeyde anlatmış olduk, umarım işinizi görür. Sorularınızı yorum olarak belirtirseniz elimden geleni yaparım sizler için.
Python & Redis İle Yaptığım Örnek Bir Uygulama: http://paste.ubuntu.com/25713665/
Ellerine saglik boyle bir arastirma icindeydim.ilac gibi geldi saygilar
Merhaba, degerli bilgileriniz için tesekkur ederim. Bir sorum olacaktir. Redisde kayd edilen veriler gecici mi kayd oluyor yoksa aynen veritabani gibi mi calisiyor?
Redis verileri RAM üzerinde sakladığından dolayı geçici bir hafızaya sahiptir. Bilgisayar kapandığı anda veriler silinir. Ancak eş zamanlı olarak RDB formatında veri sakladığını da biliyoruz. Bunu Redisin conf dosyasından ayarlayarak sürekliliğini sağlayabilirsiniz. Ben geçici işlemler için kullandığım için hiç ihtiyaç duymadım açıkçası.