Selasa, 30 Mei 2017

Cara Penggunaan Memcached pada Aplikasi Rails

Apa itu Memcached ? 

Memcached adalah sebuah technologi yang digunakan sebagai suatu sistem penyimpanan dan pendistribusian data didalam memory server (RAM). Contoh website yang memakai memcached adalah detik.com. Search enginenya yg sangat cepat itu di code dengan memcached. Cara kerja memcached sangatlah simple karena fungsinya hanya cache server dan mengurangi load ke database server dan data yang di simpan oleh memcached disimpan di memory sehingga akses kedata tersebut akan jauh lebih cepat daripada akses ke database server.

Install Memcached di Ubuntu

Update Package
$ sudo apt-get update
Kemudian menginstal Memcached dan paket terkait
$ sudo apt-get install memcached

Configuration of the Memcached Installation

Gunakan perintah berikut untuk melihat informasi mengenai perintah memcached:
$ memcached -h
File konfigurasi default dapat ditemukan di:
$ vi /etc/memcached.conf
Saat start, Memcached akan start pada port 11211 secara default sesuai dengan file konfigurasi default. Untuk mengganti port, cukup ubah nomor di file konfigurasi. Jika singin menjalankan Memcached pada port 1337, dengan memori 4GB, dan memungkinkan maksimal 2.000 koneksi, Ubahlah sesuai code berikut:
-p 1337
-m 4096
-c 2000 
Keluar dan simpan file konfigurasi, lalu restart Memcached
$ sudo service memcached restart

Implementasi Pada ROR

Mulai dari awal buat project baru
$ rails new memcached_coba -d postgresql
$ cd memcached_coba
$ rails g scaffold post title:string description:text
$ rake db:create
$ rake db:migrate
Mulai setup memcache

Tambahkan gem 'dalli' pada file Gemfile lalu bundle install

Edit File  config/environments/development.rb tambahkan atau rubah:
    config.cache_store = :dalli_store
Buat file 'memcached.rb' pada folder config/initializers/memcached.rb isi file seperti berikut:
CACHE = Dalli::Client.new('127.0.0.1', { :namespace => 'memcached_coba', :expires_in => 3600, :socket_timeout => 3, :compress => true })
Dasar Penggunaan memcached

# Menyimpan memcached
 CACHE.set(key, value)
# Mengatur waktu expire
 CACHE.set(key, value, time_expire)
# Menggunakan memcached
 CACHE.get(key, value)
 # Menghapus memcached
 CACHE.delete(key)
# Menghapus semua memcached
 CACHE.flush_all
Berikut adalah sreenshoot hasil percobaan saya di rails console:



Selanjutnya kita akan mencoba menyimpan data post menggunakan memcached

Sebelum menggunakan memcached buatlah data post terlebih dahulu http://localhost:3000/posts/

Mari kita lihat log server sebelum penggunaan memcached berikut screenshootnya


Gambar Sebelum menggunakan memcached

Sekarang kita pasang memcached pada detil posts

Ubah code method set_post pada file app/controllers/posts_controller.rb
    def set_post
      @post = CACHE.get("post-#{params[:id]}")
      if @post.nil?
         @post = Post.find(params[:id])
         CACHE.set("post-#{params[:id]}", @post)
       end
    end
Mari kita lihat log server setelah penggunaan memcached berikut screenshootnya


Gambar setelah menggunakan memcached


Dari kedua gambar diatas kita bisa lihat perbedaanya bila menggunakan memcached saat pergi ke halaman detil post untuk kedua kalinya server tidak meload ke database terbukti dengan tidak adanya baris info load 'Post Load (2.4ms)  SELECT "posts".* FROM "posts" '

Dengan memanfaatkan memcached kita bisa membuat web kita menjadi lebih cepat . Sekian dulu postingan kali ini bila ada yang bertanya atau menambahkan yang kurang  silahkan comment dibawah.

Tidak ada komentar:

Posting Komentar