Tổng quan về Redis và Nodejs trong PHP
This post hasn't been updated for 9 years
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,…
All Rights Reserved