Cara install Redis di CentOS 6
Kali ini membahas ilmu baru yang juga permintaan dari mbak Shafira. Haha. 😀 Tema masih sama yaitu memaksimalkan performa web server sekaligus mengurangi beban kerja VPSnya dengan cache. Fokusnya kali ini adalah Redis yang aslinya adalah sebuah database server tapi aktif dalam memori. Mirip Memcached aslinya dan sama – sama bisa terdistribusi disebarkan dalam beberapa server.
Yang dilakukan Redis adalah menyimpan query – query SQL saat pengunjung mengakses situsnya dan kebanyakan akan sama isinya karena itu daripada selalu diproses oleh MySQL misalnya maka jauh lebih cepat dilayankan dari RAM langsung. Keunggulan Redis dibandingkan Memcached adalah fitur – fiturnya lebih lengkap dan kemampuannya mengolah datanya lebih besar. Tapi kalau hanya digunakan untuk cache database menirukan Memcached kurang lebih setara performanya.
Daftar Isi
Langkah 1: Persiapan dan instalasi Redis
Mari kita lanjutkan ke intinya. Saya menggunakan CentOS 6 dan perlu menambahkan repository EPEL juga REMI dahulu:
#Centos 6 32-bit
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
#CentOS 6 64-bit
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-6.rpm
Selanjutnya kita update dulu semua paket aplikasi yang sudah ada dalam CentOS:
yum -y update
Akhirnya kita install Redis dar Remi:
yum --enablerepo=remi install redis
Nanti akan otomatis menginstall dependensi jemalloc
dari EPEL juga.
Pastikan ikut startup CentOS:
chkconfig redis on
Selesai sudah urusan instalasinya Redis. Tinggal setting – setting tambahannya.
Langkah 2: Pasang PHP Binding dan utak – atik konfigurasi Redis sebagai cache
Karena niatnya untuk cache website dan memanfaatkan PHP maka kita perlu menginstall ekstensinya:
yum --enablerepo=remi install php-redis
Ini supaya script PHP bisa berkomunikasi dengan Redis.
Pastikan dalam konfigurasi PHP pada /etc/php.ini
sudah dimuat ekstensinya:
extension=redis.so
Kemudian edit setting Redis pada /etc/redis.conf
:
maxmemory 256mb
maxmemory-policy allkeys-lru
Kita atur besar memori yang bisa digunakan Redis, dalam contoh 256MB. Sedangkan satunya adalah apa yang akan dilakukan kalau penuh, saya memilih allkeys-lru
karena yang akan dibuang adalah yang sangat jarang dipanggil. Oh ya LRU adalah Least Recent Used artinya.
Setelahnya silahkan restart web server anda dan sekalian Redis:
#Apache
service httpd restart
#Nginx
service nginx restart
#Redis
service redis restart
Langkah 3: Cek Redis sudah aktif dan sambungan PHP dengan Redis
Jangan lupa anda harus menyambungkan script PHP atau CMS anda agar menggunakan Redis. Kalau ini kadang bisa dipermudah dengan menginstall plugin, saya sertakan linknya untuk CMS populer:
- WordPress: WP-Redis
- Drupal: Redis
- XenForo: Zend Redis Cache
Redis menyediakan tool berbasis command line untuk mengetahui status cachenya, dan kita bisa manfaatkan untuk melihat apakah sudah benar aktif atau belum:
redis-cli monitor
Oh ya, defaultnya aktif di port 6379.
Selesai sudah! 🙂
Penutup
Tak kenal maka tak sayang kalau urusannya dengan Redis. Awalnya saya agak ragu karena takutnya lebih kompleks daripada Memcached. Redis itu dasarnya adalah database server in-memory tapi bisa difungsikan sebagai cache seperti Memcached. Ternyata tidak kalah mudahnya. Haha. 😀 Cuma repot di urusan cari repository yang tepat saja dan berharap pada CMS yang digunakan sudah ada yang membuatkan sambungannya.
Stack yang saya gunakan: Nginx 1.8, MariaDB 5.5, dan PHP 5.6. Aslinya tidak ada masalah pakai yang manapun karena Redis bisa berjalan sendiri, jadi mau pakai Nginx atau Apache tidak ada bedanya. Saya rencananya mencoba memasangkan untuk OpenLiteSpeed setelah ini karena web server satu ini tidak menggunakan PHP-FPM melainkan LSAPI buatannya sendiri, sehingga pasti ada yang lain nantinya. Hehe. 😀
trims mas chandra,,tolong edit langkah 2 dan seterusnya sepertinya semua masuk kolom kode 🙂
Haha iya mbak, pas baca – baca baru sadar kalau belum ketutup tagnya.
mas chandra saya sudah instal cms ecomerce magento dalam satu vps..apakah dalam vps yang sama redis dapat instal? kemudian apakah redis ini melakukan tumpukan log/file yg perlu dibersihkan sewaktu-waktu
Halo mas Mamank, memang saya asumsikan nanti dipasangkan dalam 1 VPS dengan web servernya. 🙂 Soal log memang ada, tapi ukurannya kecil kok mas. Bisa diabaikan setahun lewat.
Jangan lupa aktifkan dukungan Redis di Magento mas, kalau tidak walaupun sudah terinstall ya tidak dipakai: http://devdocs.magento.com/guides/m1x/ce18-ee113/using_redis.html
okkedeh mas chandra terimakasih mas
setelah lama menunggu dukungan memcached untuk php7 akhirnya saya nyerah juga dan sekarang pakai redis, performanya nggak kalah dengan memcached dan kombinasi php7, testing dulu seminggu baru terapkan di live site 😀
tambahan mas chandra :
untuk cek status redis :
redis-cli ping
kalau aktif dibalasPONG
#kayak main PING PONG 😀cek versi redis :
redis-server --version
Ngeriiiii 😀 Tapi memang bagus kok Redis, ga kalah dengan Memcached. Bisa dishare ke beberapa server lagi kalau kedepannya trafiknya besar.
Ini dikombinasikan dengan FastCGI Cache Nginx mbak?
*Maaf telat balasnya karena sibuk membersihkan malware di salah satu VPS dan sekalian siap – siap pindahan gara – gara kasus ini.
nggak pakai FastCGI Cache mas, cuma itu masih tergantung sama addon untuk nyambung antara php dan redis, secara musti betul2 irit penggunaan addon karna spek vps yang minimalis, maks. 5 addon saja 😀
Memang pengunjungnya sudah berapa mbak sehari? Dari hasil
top
memang sudah mepet dengan spesifikasi VPSnya? Terutama memori mestinya.Ga jadi pakai FastCGI gara – gara masalah sesi user?
mas chandra saya pemula. Bagusan Nginx atau redis ya pak buat centos untuk implementasi ke magento apa ada ulasan mas?
Loh Nginx dan Redis itu 2 hal berbeda mas, bagusnya bisa digabungkan asalkan di Magento ada konektornya. Mestinya bisa sih kalau CMS populer seperti itu.
Nginx itu web server dan Redis itu sistem cache database.
siap mas candra tadi kurang paham..redisnya sudah aman. Terimakasih petunu2knya di blonya bermanfaat.
Sama – sama mas. 🙂
Sudah dicoba mas sambungin Redisnya ke PHP? Yang pasti kalau sudah ada Redis jangan install Memcached mas, sama fungsi dan sistemnya, jadi salah satu saja.
Pakai spesifikasi VPS apa mas untuk Magentonya? Boleh tahu trafiknya berapa per hari? Sekalian survey. 😀
mas chandra ini dia masalahnya mas..jika tanpa mengintal php extensionnya gimana mas? saat mau install php redis nya, dia butuh php 7 mas sementara sekarang pakai php versi 5.6…mas chandra kalau mau konsul private bolehka 😀
Mas pakai stack apa ya? LEMP juga? Versi masing – masing aplikasinya?
Bisa dicopas mas perintah yang mas jalankan dan pesan – pesannya?
Saya menganjurkan dishare disini sih mas, biar ada pengunjung lain yang memiliki masalah sama ikut terbantu. 🙂
masih standar mas spesifikasinya….masih sedang produksi webnya mas
Redis On Nginx untuk Debian 8 mana?
Request dong
Oke mas, saya tampung dulu ya. Semoga bisa dibuatkan segera.
kalau untuk ppob sekelas doku atau veritrans pakai apa ya teknologi servernya?
dan juga bagaimana setup server big data untuk transaksi ppob tersebut?
mohon bantu arahan, terimakasih
Wah… kalau ini saya tidak bisa menjawab mas. Informasi bagaimana infrastruktur mereka minim sekali mas. Rasanya lebih baik tanyakan ke pihak yang bersangkutan.
Paling butuh dedicated server atau AWS karena mengolah ratusan ribu hingga jutaan transaksi per hari. Sususan teknologinya ya… rahasia perusahaan mungkin.
maaf mas saya newbie, itu maxmemory 256mb
maxmemory-policy allkeys-lru ditaruh paling bawah gpp kan? sama yg extension=redis.so, soalnya saya tak taroh paling bawah terus mb nya saya edit jadi GB, mohon pencerahanya
Ya ga masalah mas. Seingat saya bukan menambahkan malah, tapi edit yang sudah ada.