Tạo và quản lý set
Set
là kiểu dữ liệu key/value thông thường lưu trữ dữ liệu kiểu chuỗi. Các key của kiểu dữ liệu set
chỉ có thể giữ một giá trị, giá trị này có thể là bất kỳ loại dữ liệu nào, từ các ký tự chữ và số đến hình ảnh JPEG. Các giá trị đó trong Redis được lưu dưới dạng binary an toàn. Giới hạn duy nhất là các giá trị đó phải nhỏ hơn 512 MB.
Để tạo một chuỗi ta sử dụng lệnh set
. Ví dụ: lệnh set
sau tạo một key có tên key_Welcome1 chứa chuỗi "Howdy" :
> set key_Welcome1 "Howdy" Output
OK
Để tạo nhiều chuỗi trong một lệnh ta sử dụng mset
:
> mset key_Welcome2 "there" key_Welcome3 "partners,"
Chúng ta cũng có thể sử dụng lệnh append
để tạo một chuỗi giá trị:
> append key_Welcome4 "welcome to Texas" Output
(integer) 16
Nếu giá trị được tạo thành công, append
sẽ trả về một số nguyên bằng số ký tự của chuỗi giá trị.
Lưu ý append
cũng được dùng để thay đổi nội dung của chuỗi giá trị. Xem phần thao tác trên chuỗi để biết chi tiết về điều này.
Truy xuất chuỗi
Để truy xuất một chuỗi ta sử dụng lệnh get
:
> get key_Welcome1 Output
"Howdy"
Để truy xuất nhiều chuỗi bằng một lệnh ta sử dụng mget
:
> mget key_Welcome1 key_Welcome2 key_Welcome3 key_Welcome4 Output
1) "Howdy" 2) "there" 3) "partners," 4) "welcome to Texas"
Đối với các key được truyền vào lệnh mget
không chứa giá trị chuỗi hoặc hoàn toàn không tồn tại, lệnh sẽ trả về nil
.
Thao tác chuỗi
Nếu một chuỗi được tạo thành từ một số nguyên, chúng ta có thể chạy lệnh incr
để tăng nó lên một:
> set key_1 3 > incr key_1 Output
(integer) 4
Tương tự, chúng ta có thể sử dụng lệnh incrby
để tăng giá trị của một chuỗi số theo một mức tăng cụ thể:
> incrby key_1 16 Output
(integer) 20
Lệnh decr
và decrby
hoạt động theo cùng một cách, nhưng chúng làm giảm số nguyên được lưu trữ trong một chuỗi số:
> decr key_1 Output
(integer) 19
> decrby key_1 16 Output
(integer) 3
Nếu một chuỗi đã tồn tại, append
sẽ nối giá trị vào cuối giá trị hiện có và trả về độ dài mới của chuỗi. Để minh họa, lệnh sau nối chuỗi ", y'all" vào chuỗi được giữ bởi key key_Welcome4 , vì vậy bây giờ chuỗi sẽ có nội dung "welcome to Texas, y'all" :
> append key_Welcome4 ", y'all" Output
(integer) 15
Chúng ta cũng có thể nối các số nguyên vào một chuỗi chứa một giá trị số. Ví dụ sau nối 45 với chuỗi giá trị hiện tại là 3 (số nguyên được giữ trong key_1) , vì vậy giá trị mới nó sẽ giữ là 345 . Trong trường hợp này, append cũng sẽ trả về độ dài mới của chuỗi, thay vì giá trị mới của nó:
> append key_1 45 Output
(integer) 3
Vì key này vẫn chỉ giữ một giá trị số nên chúng ta có thể thực hiện các phép toán incr
và decr
trên nó. Chúng ta cũng có thể nối các ký tự chữ cái vào một chuỗi số nguyên, nhưng nếu chúng ta làm điều này thì việc chạy incr và decr trên chuỗi sẽ tạo ra lỗi vì giá trị chuỗi không còn là số nguyên.
Nguồn: