REDIS 2. CÁC THAO TÁC CƠ BẢN

  1. Công nghệ thông tin

Trong bài viết lần này, chúng ta sẽ tìm hiểu một số thao tác cơ bản với Redis.

Nhắc lại một cách ngắn gọn: Redis là một hệ thống lưu trữ theo cấu trúc khóa-giá trị (key-value), thường được coi như một cơ sở dữ liệu NoSQL. Dữ liệu được lưu trữ theo các khóa (key) và chỉ có thể truy xuất nếu ta biết chính xác khóa được dùng để lưu trữ nó.

Cách cơ bản nhất để lưu dữ liệu đó là sử dụng lệnh SET. Ví dụ: lưu chuỗi ký tự "fido" vào khóa "server:name":

SET [key] [value] SET server:name "fido" 
Dữ liệu có thể được tổ chức theo các nhóm phân cấp, gọi là namespace, phân cách nhau bởi dấu hai chấm (:), viết đầy đủ tạo thành một key. Như ở ví dụ, key gồm một trường "name", trong một namespace "server". Tiếp đến, để lấy ra một giá trị khi đã biết khóa, ta sử dụng lệnh GET. Ví dụ:

GET [key] GET server:name 
Kết quả nhận được trên console:
"fido"
Ta có thể dùng lệnh DEL để xóa một cặp key-value khi đã biết khóa:
DEL [key]
Ngoài ra có thể dùng lệnh SETNX (SET-if-not-exist) để thêm dữ liệu nếu khóa được khai báo chưa tồn tại:
SETNX [key] [value]
Lệnh INCR để tự động tăng thêm 1 đơn vị cho giá trị nếu khóa được khai báo chứa một số:
INCR [key]
Lệnh INCR khá thú vị. Ta sẽ đặt câu hỏi rằng tại sao phải cung cấp riêng một lệnh cho một phép toán đơn giản như thế? Đó là bởi vì lệnh INCR tuân theo nguyên tắc "thread-safe". Nghĩa là trong cùng một thời điểm chỉ một client có thể thực hiện lệnh INCR trên một khóa. Lệnh INCR của một client khác sẽ chỉ được thực thi khi lệnh INCR của client kia hoàn thành phép cộng của mình.Để đặt thời gian tồn tại có giới hạn cho một cặp key-value, ta dùng lệnh EXPIRE với thời gian tính theo giây, sau khi gọi lệnh SET:

EXPIRE [key] [period] SET resource:lock "demo" EXPIRE resource:lock 120
Để kiểm tra xem một khóa còn tồn tại trong bao lâu, hãy gọi lệnh TTL, Redis sẽ trả về số giây còn lại, nếu là -1 thì key sẽ không bao giờ mất, nếu là -2 nghĩa là key đó không còn tồn tại:
TTL [key]
Ở bài viết tiếp theo chúng ta sẽ tiếp tục làm quen với thao tác trên một số cấu trúc dữ liệu đặc biệt mà Redis cung cấp như List hay Set,...

(còn tiếp)

Từ khóa: 

vtcc_intern_9

,

redis

,

công nghệ thông tin