Tổng quan về Redis và Nodejs trong PHP
5 (100%) 1 vote

Redis là gì?

  • Redis là một cơ sở dữ liệu nguồn mở, lưu trữ dữ liệu dạng key/value.
  • Redis cũng thường được gọi là một server lưu trữ cấu trúc dữ liệu do các khóa lưu trữ có thể bao gồm các kiểu dữ liệu dạng Strings, hashes, lists, sets, ..

Lý do chọn Redis

  • Redis hỗ trợ insert, update, delete dữ liệu nhanh chóng
  • Lưu trữ dữ liệu dạng key/value
  • Tất cả dữ liệu được lưu trên RAM
  • Key có thể hết hạn hoặc không
  • Redis rất nhanh trong các thao tác lấy và nạp dữ liệu do redis hỗ trợ nhiều lệnh mang tính chất chuyên biệt.
  • Hỗ trợ nhiều Databases

Hướng dẫn sử dụng Redis

Để chạy được Redis trên chương trình PHP, trước tiền chúng ta cần đảm bảo rằng trên server đã được cài đặt sẵn Redis PHP Driver.

Muốn cài đặt Redis, trước tiên vào link https://github.com/phpredis/phpredis tải bộ cài Redis về máy. Giải nén vào thư mục phpredis. Đối với Ubuntu thực hiện cài đặt theo các bước sau

cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install

Sau đó thêm dòng dưới đây vào file php.ini

extension = redis.so

Bây giờ thì Redis Driver đã được cài đặt thành công.

Connect to redis server

Dưới đây là ví dụ kết nối đến Redis server trên localhost


<?php
   //Connecting to Redis server on localhost
   $redis = new Redis();
   $redis->connect('127.0.0.1', 8080);
   echo "Connection to server sucessfully";
   //check whether server is running or not
   echo "Server is running: "+ $redis->ping();
?>

Khi thực hiện chương trình trên, nếu kết nối thành công thì kết quả nhận được sẽ là

Connection to server sucessfully
Server is running: PONG

Ví dụ về Redis PHP String


<?php
   //Connecting to Redis server on localhost
   $redis = new Redis();
   $redis->connect('127.0.0.1', 8080);
   echo "Connection to server sucessfully";
   //set the data in redis string
   $redis->set("tutorial-name", "Redis tutorial");
   // Get the stored data and print it
   echo "Stored string in redis:: " + jedis.get("tutorial-name");
?>

Kết quả nhận được sẽ là

Connection to server sucessfully
Stored string in redis:: Redis tutorial

Ví dụ về Redis php List


<?php
   //Connecting to Redis server on localhost
   $redis = new Redis();
   $redis->connect('127.0.0.1', 6379);
   echo "Connection to server sucessfully";
   //store data in redis list
   $redis->lpush("tutorial-list", "Redis");
   $redis->lpush("tutorial-list", "Mongodb");
   $redis->lpush("tutorial-list", "Mysql");
   // Get the stored data and print it
   $arList = $redis->lrange("tutorial-list", 0 ,5);
   echo "Stored string in redis:: "
   print_r($arList);
?>

Kết quả nhận được như sau

Connection to server sucessfully
Stored string in redis::
Redis
Mongodb
Mysql

Ví dụ về Redis Php Keys

<?php
   //Connecting to Redis server on localhost
   $redis = new Redis();
   $redis->connect('127.0.0.1', 6379);
   echo "Connection to server sucessfully";
   // Get the stored keys and print it
   $arList = $redis->keys("*");
   echo "Stored keys in redis:: "
   print_r($arList);
?>

Kết quả thu được như sau:

Connection to server sucessfully
Stored string in redis::
tutorial-name
tutorial-list

NodeJS là gì

Node JS là một nền tảng chạy trên V8 Javascript runtime. Cho phép các lập trình viên xây dựng các ứng dụng có tính mở rộng cao sử dụng Javascript trên server.

Vai trò của NodeJS tượng tự như xamp hay Appserv nhưng cách thức tạo thì khác hẳn. Để cài đặt Node JS chúng ta thực hiện như sau:

  • Vào trang https://nodejs.org/, nhấn install và tiến hành cài đặt NodeJS.
  • Tạo file server.js ở bất kỳ đâu trên server của bạn với nội dung như sau:

    var http = require('http');
    http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello Framgia!\n');
    }).listen(8080, '127.0.0.1');
    console.log('Server running at http://127.0.0.1:8080/');
  • Sau khi tạo xong file server, tiến hành chạy file vừa tạo. Mở Terminal, trỏ đường dẫn đến thư mục chứa file server.js vừa tạo. Chạy lệnh node server.js. Nếu thành công thì trên Terminal sẽ hiển thị dòng chữ
    Server running at http://127.0.0.1:8080/

Để kiểm chứng hãy chạy localhost với cổng 8080.

Ưu điểm của NodeJS

  • Đặc điểm nổi bật của Node.js là nó nhận và xử lý nhiều kết nối chỉ với một single-thread. Điều này giúp hệ thống tốn ít RAM nhất và chạy nhanh nhất khi không phải tạo thread mới cho mỗi truy vấn giống PHP
  • Ngoài ra, tận dụng ưu điểm non-blocking I/O của Javascript mà Node.js tận dụng tối đa tài nguyên của server mà không tạo ra độ trễ như PHP
  • Với sự ra đời của các ứng dụng di động & HTML 5 nên Node.js rất hiệu quả khi xây dựng những ứng dụng thời gian thực (real-time applications) như ứng dụng chat, các dịch vụ mạng xã hội như Facebook, Twitter,…