Redis bisa kita gunakan untuk menyimpan data, mirip dengan database dan tanpa menggunakan SQL. Seperti dibahasa pada artikel sebelumnya : Apa itu Redis? dan Bagaimana cara instalasi Redis di Windows?
Redis bisa berfungsi sebagai database non SQL, kita bisa menyimpan data dalam format json (lebih baik). Kelebihannya adalah sangat cepat, meskipun tidak bisa menggantikan fungsi database secara keseluruhan. Tapi akan sangat berguna jika digunakan untuk membaca data yang sebelumnya diambil dari database. Berikut ini tutorial membuat aplikasi CRUD sederhana dengan menggunakan Redis dan PHP tentunya.
Buat file redisDB.php untuk kemudian digunakan sebagai class redisDB.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
class redisDB extends Redis { private $hostRedis = '127.0.0.1'; private $port = 6379; private $ttl = 604800; /* time to live = 1 minggu */ private $db = 1; /* db redis */ /* Koneksi ke redis */ public function openRedis() { $this->connect($this->hostRedis, $this->port); try { $pingRedis = $this->ping(); } catch (Throwable $e) { $e->getMessage(); } if (isset($e)) { return false; } else { return true; } } /* tutup koneksi */ public function closeRedis() { $this->close(); } /* mencari key redis */ public function FindRedis($keyredis) { try { $check = $this->openRedis(); if ($check != false) { $this->SELECT($this->db); $resultRedis = $this->keys($keyredis); $this->closeRedis(); } return $resultRedis; } catch (Throwable $e) { $e->getMessage(); } } /* mendapatkan value dari redis key */ public function GetDatafromKeys($keyredis) { $findRedis = $this->FindRedis($keyredis); if (count($findRedis) > 0) { $this->openRedis(); $this->SELECT($this->db); $arrData = $this->get($keyredis); $this->closeRedis(); } else { $arrData = null; } return $arrData; } /* menyimpan value ke redis */ public function InsertDataToKey($keyredis, $value) { try { $check = $this->openRedis(); if ($check != false) { $this->SELECT($this->db); $this->setex($keyredis, $this->ttl, $value); $this->closeRedis(); return true; } else { return false; } } catch (Throwable $e) { throw $e; return false; } } /* menghapus value redis */ public function RemoveRedis($keyredis) { try { $check = $this->openRedis(); if ($check != false) { $this->SELECT($this->db); $this->del($keyredis); $this->closeRedis(); $message = "success"; } } catch (Throwable $e) { throw $e; } return $message; } } |
Redis key bersifat case sensitif, jadi huruf kecil dan huruf besar dibaca berbeda. Dan usahakan penamaan key tidak menggunakan spasi atau karakter khusus.
Buat file view.php untuk menampilkan semua key dari db1 (menentukan alokasi database redis di class redisDB)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php require 'redisDB.php'; $redis = new redisDB(); /* mendapatkan semua key */ $getdata = $redis->FindRedis('*'); ?> <html> <head> <title>Create/Update Redis</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> [<a href="edit.php">Tambah Baru</a>] <table border="1"> <tr> <td>Key</td> <td>Action</td> </tr> <?php if (!empty($getdata)) { foreach ($getdata as $row) { ?> <tr> <td><?= $row ?></td> <td><a href="edit.php?key=<?= $row ?>">edit</a> | <a href="delete.php?key=<?= $row ?>">delete</a></td> </tr> <?php } } ?> </table> </body> </html> |
Buat file edit.php untuk menyimpan key dan value serta melakukan update. Dalam file ini juga memanggil fungsi untuk mengambil value dari key yang ditentukan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php error_reporting(0); require 'redisDB.php'; $redis = new redisDB(); $dtkey = $dtvalue = null; if (!empty($_POST)) { /* menyimpan value dan key */ $redis->InsertDataToKey($_POST['key'], $_POST['value']); } if (!empty($_GET['key'])) { /* mendapatkan value dari redis key */ $getdata = $redis->GetDatafromKeys($_GET['key']); $dtkey = $_GET['key']; $dtvalue = $getdata; } ?> <!DOCTYPE html> <html> <head> <title>Create/Update Redis</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <form name="edit" method="post"> <table> <tr> <td>Key</td> <td><input name="key" value="<?= $dtkey ?>" /></td> </tr> <tr> <td>Value</td> <td><input name="value" value="<?= $dtvalue ?>" /></td> </tr> <tr> <td></td> <td><input type="submit" name="submit"></td> </tr> </table> </form> </body> </html> |
Buat file delete.php untuk menghapus key beserta value-nya
1 2 3 4 5 6 7 8 |
require 'redisDB.php'; $redis = new redisDB(); if (!empty($_GET['key'])) { /* menghapus value dari redis key */ $redis->RemoveRedis($_GET['key']); header("location:" . $_SERVER['HTTP_REFERER']); } |
Cukup mudah bukan? Semoga bermanfaat
Makasih gan sangat bermanfaat
Bagaimana cara merun code diatas? saya run dengan local host seperti biasa kok tidak bisa?
apakah redis nya sudah terinstall dengan benar?
Bagaimana cara menjalankan koding diatas? dan hasil tampilannya bagaimana?
tinggal buka di localhost, ada pesan error yang muncul?