PHP için Redis kurulum ve kullanım

  2016/10/27 11:59 • Ana Sayfa > PHP

Redis'i, memcached alternatifi ararken buldum. İhtiyacım olan, aynı verileri $_SESSION mantığında tutmaktı. Fakat $_SESSION'da olduğu gibi ziyaretçi başına veri tutmak istemediğimden, Redis alternatifini araştırmaya adadım kendimi.

Redis sayesinde, istediğiniz anahtar kelimeleri, istediğiniz süre boyunca sunucunuzun RAM'inde tutabiliyorsunuz. Üstelik 20.000.000 veriyi 2 haneli mb boyutunda (85mb) kaydediyor. Aynı veriyi MySQL'de kayıt ettiğimde 900 mb > yanıtı alıyorum.

Redis Kurulumu (CentOS 6/7)

Redis-Server kurulumu için aşağıdaki yolu izlemelisiniz.

wget http://download.redis.io/releases/redis-2.8.3.tar.gz
tar xzvf redis-2.8.3.tar.gz
cd redis-2.8.3
make
make install

Ardından redis-server'i sunucuya tanımlayalım ve restart edelim.

chkconfig --add redis
chkconfig --level 345 redis on
service redis restart

Son olarak Redis için PHP (php-redis) eklentisini kuralım.

wget https://github.com/nicolasff/phpredis/zipball/master -O phpredis.zip
unzip phpredis.zip
cd nicolasff-phpredis-*
phpize
./configure
make
make install

Artık server'da Redis kurulumu başarıyla tamamlandı demektir. PHP için phpinfo(); etiketini kullanarak Redis'in sunucunuzda aktif olup olmadığını görebilir ve redis server sürümünü öğrenebilirsiniz.

PHP için Redis kullanım

PHP için redis kullanımı oldukça basit. Redis.io > Commands sayfasından, kullanabileceğiniz fonksiyonları görebilirsiniz. Şimdi örnek olarak kodlab etiketine, kodlab'ın adresi olan https://kodlab.org'u ekleyelim ve daha sonra bunu ekrana yazdıralım.

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set("kodlab", "https://kodlab.org/");

echo $redis->get("kodlab");

Bir de aynı etiket içine birden fazla veri ekleme örneği vermek istiyorum. Örneğin kodlab etiketi içine https://kodlab.org/php-pdo-kullanimi ve https://kodlab.org/php-coklu-dil-sistemi-yapimi gibi birden fazla URL adresi eklemek, daha sonra bunları array döngüsü içinde almak istiyorsam;

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->lpush("kodlab", 'https://kodlab.org/php-coklu-dil-sistemi-yapimi');
$redis->lpush("kodlab", 'https://kodlab.org/php-pdo-kullanimi');

$redist = $redis->lrange("kodlab");
var_dump($redist);

Redis.io'daki Commands sayfasından (link yukarıda var) daha detaylı ve kullanacağınız alana özel fonksiyonlara erişebilirsiniz. Redis hakkında ilerde yeni bir makale daha hazırlamayı planlıyorum. 

Yazar: Ercüment Çözer (@Felina)

2009 yılında gelen "internet için bir şeyler üretme isteği" doğrultusunda yazılım öğrenmeye başladım. Aradan geçen süre zarfında başta PHP ve Python olmak üzere, ticareti yapılabilir birçok şey öğrendim. Şu sıralar web ve mobil ortamda kodlama, tasarlama ve pazarlama konularındaki bilgilerimi pekiştirmek ve ihtiyaç halinde diğer insanlara da yardımcı olabilmek için KodLab.org'u kurdum. Freelance olarak kendi projelerimle ilgileniyorum.