[Redis] – Redis hash

Tạo hash Để tạo hash ta dùng lệnh hset . Lệnh này chấp nhận tên của key ( tên hàm băm), field và value . Cú pháp: HSET key field value > hset poet:Verlaine nationality French Output (integer) 1 Lưu ý: Trong ví dụ này và những ví dụ sau, poet:Verlaine là key. Dấu chấm,

Tạo hash

Để tạo hash ta dùng lệnh hset . Lệnh này chấp nhận tên của key ( tên hàm băm), field và value .
Cú pháp:

HSET key field value
> hset poet:Verlaine nationality French 
Output
(integer) 1 

Lưu ý: Trong ví dụ này và những ví dụ sau, poet:Verlaine là key. Dấu chấm, dấu gạch ngang và dấu hai chấm thường được sử dụng để phân tách trong tên key mà chứa nhiều từ để dễ đọc hơn. Sẽ hữu ích khi đảm bảo các key của chúng ta tuân theo một định dạng nhất quán và dễ đọc.

hset trả về (integer) 1 nếu key được chỉ định là key mới và giá trị được đặt hợp lệ.

Ngoài ra, lưu ý hset sẽ overrides value của field nếu nó đã tồn tại:

> hset poet:Verlaine nationality Francais 
Output
(integer) 0 

Nếu field đã tồn tại và giá trị của nó được cập nhật thành công, hset sẽ trả về (integer) 0 :

chúng ta cũng có thể sử dụng hsetnx để thêm field vào hàm băm, nhưng nó sẽ chỉ hoạt động nếu field chưa tồn tại. Nếu field được chỉ định đã tồn tại, thì hsetnx sẽ không có bất kỳ ảnh hưởng nào và sẽ trả về (integer) 0 :

> hsetnx poet:Verlaine nationality French 
Output
(integer) 0 

Để đặt nhiều cặp field/value cho một tập hợp nhất định, hãy sử dụng lệnh hmset theo sau là chuỗi field/value tương ứng:

> hmset poet:Verlaine born 1844 died 1896 genre Decadent 

hmset sẽ chỉ trả về OK nếu nó thành công.

Lấy thông tin từ Hashes

chúng ta có thể xác định xem field có tồn tại cho một hàm băm nhất định hay không bằng lệnh hexists :

> hexists poet:Verlaine nationality 

hexists sẽ trả về (integer) 1 nếu field tồn tại và (integer) 0 nếu field không tồn tại.

Để trả về giá trị của một field, hãy chạy lệnh hget theo sau là key và field chúng ta muốn truy xuất:

> hget poet:Verlaine nationality 
Output
"Francais" 

hmget sử dụng cùng một cú pháp, nhưng có thể trả về giá trị của nhiều field

> hmget poet:Verlaine born died 
Output
1) "1844" 2) "1896" 

Nếu field chúng ta truyền cho hget hoặc hmget không tồn tại, cả hai lệnh sẽ trả về (nil) :

> hmget poet:Dickinson born died 
Output
1) (nil) 2) (nil) 

Để có được danh sách tất cả các field được giữ trong một key nhất định, hãy chạy lệnh hkeys :

> hkeys poet:Verlaine 
Output
1) "nationality" 2) "born" 3) "died" 4) "genre" 

Ngược lại, chạy lệnh hvals để truy xuất danh sách các giá trị được giữ trong một key (hàm băm):

> hvals poet:Verlaine 
Output
1) "French" 2) "1844" 3) "1896" 4) "Decadent" 

Để trả về danh sách tất cả field/value được nắm giữ bởi một key (hàm băm) hãy chạy hgetall :

> hgetall poet:Verlaine 
Output
1) "nationality" 2) "French" 3) "born" 4) "1844" 5) "died" 6) "1896" 7) "genre" 8) "Decadent" 

chúng ta có thể tìm số field trong một hàm băm bằng cách chạy hlen , viết tắt của hash length:

> hlen poet:Verlaine 
Output
(integer) 4 

chúng ta có thể tìm độ dài của chuỗi giá trị được liên kết với một field bằng hstrlen , viết tắt của hash string length:

> hstrlen poet:Verlaine nationality 
Output
(integer) 8 

hlen sẽ trả về (integer) 0 nếu key (hàm băm) không tồn tại.

Xóa field khỏi mã băm

Để xóa một field khỏi key (hàm băm), hãy chạy lệnh hdel . hdel có thể chấp nhận nhiều field làm đối số và sẽ trả về một số nguyên cho biết có bao nhiêu field đã bị xóa khỏi key (hàm băm):

> hdel poet:Verlaine born died 
Output
(integer) 2 

Nếu chúng ta chuyển một field không tồn tại vào hdel , nó sẽ bỏ qua field đó nhưng xóa mọi field hiện có khác mà chúng ta chỉ định.

Nguồn:

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ