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.

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:

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. 😀

22 pemikiran pada “Cara install Redis di CentOS 6”

  1. 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

  2. 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 dibalas PONG #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?

    • 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.

    • 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. 😀

  3. 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. 🙂

  4. 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.

  5. 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

Tinggalkan komentar