Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thiết lập một giá trị string tại khóa được chỉ định trong kho dữ liệu Redis, bằng cách sử dụng các lệnh Redis SET, SETNX, SETEX và PSETEX.
Lệnh SET
Lệnh này dùng để thiết lập một giá trị string cho một khóa được chỉ định. Nếu khóa đã tồn tại, giá trị của nó sẽ bị ghi đè bất kể kiểu dữ liệu trước đó và bất kỳ thời gian hết hạn (expiration) nào liên kết với khóa cũng sẽ bị xóa.
Các đối số tùy chọn
Lệnh SET của Redis chấp nhận các đối số tùy chọn sau:
- EX seconds: Thiết lập thời gian hết hạn cho khóa tính bằng giây.
- PX milliseconds: Thiết lập thời gian hết hạn cho khóa tính bằng mili-giây.
- NX: Chỉ thiết lập giá trị string nếu khóa không tồn tại.
- XX: Chỉ thiết lập giá trị string nếu khóa đã tồn tại.
Cú pháp:
redis host:port> SET <tên_khóa> <giá_trị>
Đầu ra:
- OK, nếu thao tác thành công và giá trị string được thiết lập. - Null, nếu thao tác thất bại và không có giá trị string nào được thiết lập.
Ví dụ:

Lệnh SETNX
Lệnh SETNX dùng để thiết lập một giá trị string tại khóa được chỉ định. Nếu khóa đã tồn tại, thao tác sẽ thất bại và trả về 0; ngược lại giá trị string được lưu tại khóa và trả về 1.
Cú pháp:
redis host:port> SETNX <tên_khóa> <giá_trị>
Đầu ra:
- 1, nếu thao tác thành công và giá trị string được thiết lập. - 0, nếu thao tác thất bại và không có giá trị string nào được thiết lập.
Tương đương với lệnh SET có đối số NX.
Ví dụ:

Lệnh SETEX
Lệnh SETEX dùng để thiết lập một giá trị string tại khóa được chỉ định và thiết lập thời gian hết hạn cho khóa đó tính bằng giây. Số giây này đại diện cho time-to-live (TTL). Nếu số giây là 0 hoặc âm, khóa sẽ bị xóa ngay lập tức. Lệnh SETEX mang tính nguyên tử (atomic) và tương đương với việc thực thi các lệnh sau:
SET key value EXPIRE key seconds
Cú pháp:
redis host:port> SETEX <tên_khóa> <giây> <giá_trị>
Đầu ra:
- OK, nếu thao tác thành công và giá trị string được thiết lập. - Null, nếu thao tác thất bại và không có giá trị string nào được thiết lập.
Tương đương với lệnh SET có đối số EX.
Ví dụ:

Lệnh PSETEX
Lệnh này rất giống SETEX, khác biệt là thời gian hết hạn được chỉ định bằng mili-giây thay vì giây.
Cú pháp:
redis host:port> PSETEX <tên_khóa> <mili_giây> <giá_trị>
Đầu ra:
- OK, nếu thao tác thành công và giá trị string được thiết lập. - Null, nếu thao tác thất bại và không có giá trị string nào được thiết lập.
Tương đương với lệnh SET có đối số PX.
Ví dụ:

Tài liệu tham khảo:
- Tài liệu lệnh SET
- Tài liệu lệnh SETNX
- Tài liệu lệnh SETEX
- Tài liệu lệnh PSETEX
Trên đây là tất cả về cách thiết lập giá trị string tại khóa được chỉ định trong kho dữ liệu Redis. Nếu bạn thấy hữu ích, hãy chia sẻ suy nghĩ của bạn trong phần bình luận và lan tỏa cho người khác nhé.