[Redis] Redis là gì mà nó lại phổ biến và quan trọng như thế?
Redis, Bạn là ai?
Redis là một cơ sở dữ liệu giá trị quan trọng thường được xếp vào nhóm cơ sở dữ liệu NoSQL. Được phát hành bởi nhà phát triển Salvatore Sanfilippo vào ngày 10 tháng 4 năm 2009.
Redis là một cơ sở dữ liệu dạng key-value và được lưu trữ trong bộ nhớ trong (RAM) của máy chủ. Điều này làm cho việc đọc và truy xuất dữ liệu nhanh hơn vì không phải chờ cho ổ cứng truyền thống tìm kiếm và đọc ghi nhiều lần.
Là một NoSQL database (lưu trữ dữ liệu dạng key-value) , nên redis cho phép bạn tạo cấu trúc dữ liệu đơn giản và nhanh gọn. Bạn có thể sử dụng redis để tạo một bộ đếm lượng khách truy cập, hoặc để biết thêm thông tin, như lưu trữ thông tin người dùng …
Redis thực sự hữu dụng khi bạn muốn ghi/truy xuất dữ liệu cực nhanh. Redis có thể sử dụng trong một số trường hợp:
- Caching
- Queuing
- Pub/sub
- Machine learning (Cái này thì mình chưa dùng bao giờ, chỉ nghe thiên hạ đồn =)) )
Các kiểu dữ liệu trong Redis
Redis hỗ trợ một số loại dữ liệu:
- Strings
- Lists
- Sets
- Hashes
- Sorted Sets
- Bitmaps
Ví dụ về sử dụng data type
Redis có thể được goi và truy xuất dữ liệu nhiều lần. Để xác đinh kiểu dữ liệu nên dùng trong redis, cần làm rõ yêu cầu của các bài toán dữ liệu đầu vào.
Ta sét một ví dụ đơn giản trong trường hợp sau.
Nếu sử dụng MySQL, thì một hàng trong bảng người dùng đơn giản trông giống như sau:
Lưu ý, trong trường hợp này, password đã được hash, nghĩà là không được lưu dưới dạng văn bản thuần tuý.
Và để làm điều này, trong redis, ta sử dụng dữ liệu dạng “hash”. Chúng ta sử dụng lệnh HMSET để thêm dữ liệu với cú pháp:
HMSET [hash name] [key1] [value1] [key2] [value2]
trong trường hợp này:
HMSET user:1 id 1 username alexbraunton password a67b9b40f76 email alex@example.com verified Y
Chúng ta có thể kiểm tra dữ liệu vừa được add sử dụng lệnh “keys *”:
127.0.0.1:6379> KEYS *
1) “firstkey”
2) “user:1”
Giá trị đã được lưu vào Redis. Hãy kiểm tra các hash và xem các giá trị:
127.0.0.1:6379> HGETALL user:1
1) "id"
2) "1"
3) "username"
4) "alexbraunton"
5) "password"
6) "a67b9b40f76"
7) "email"
8) "alex@example.com"
9) "verified"
10) "Y"
Nếu bạn muốn chỉ xem các key của một hash, bạn dùng lệnh “HKEYS”:
127.0.0.1:6379> HKEYS user:1
1) "password"
2) "email"
3) "username"
4) "id"
5) "verified"
Để có được một giá trị cụ thể, chúng ta có thể truy cập nó bằng khóa của nó bằng cách sử dụng lệnh “HGET”:
127.0.0.1:6379> HGET user:1 email
"alex@example.com"
Đến đây chúng ta đã có một cái nhìn cơ bản về Redis. Chúc các bạn có một ngày vui vẻ 🙂