01/10/2018, 15:36

Bài 7: Redis – Hashes

Redis Hashes vẽ ra một đối tượng giữa string field và string values, vì thế chúng là kiểu dữ liệu hoàn hảo tới các đối tượng tương ứng. Trong redis mổi hash có thể lưu trử tới hơn 4 tỷ cặp field-value. EX: 127.0.0.1:6379> HMSET dammelaptrinh name “redis tutorial” ...

Redis Hashes vẽ ra một đối tượng giữa string field và string values, vì thế chúng là kiểu dữ liệu hoàn hảo tới các đối tượng tương ứng.

Trong redis mổi hash có thể lưu trử tới hơn 4 tỷ cặp field-value.

EX:

127.0.0.1:6379> HMSET dammelaptrinh name “redis tutorial” description “redis basic commands for caching” likes 20 visitors 23000

OK

127.0.0.1:6379> HGETALL dammelaptrinh

1) “name”

2) “redis tutorial”

3) “description”

4) “redis basic commands for caching”

5) “likes”

6) “20”

7) “visitors”

8) “23000”

Trong ví dụ trên chúng ta đã set redis tutorials chi tiết gồm (name, description, likes, visitors) và đặt tên hash là dammelaptrinh.

Redis hash commands

S.N. Command & Description
1 HDEL key field2 [field2] 

Xóa một hoặc nhiều field hash

127.0.0.1:6379> HDEL KEY_NAME FIELD1.. FIELDN

127.0.0.1:6379> HSET myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HDEL myhash field1

(integer) 1

127.0.0.1:6379> HDEL myhash field2

(integer) 1

2 HEXISTS key field 
Xác định field hash có tồn tại hay không

127.0.0.1:6379> HEXISTS KEY_NAME FIELD_NAME

127.0.0.1:6379> HSET myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HEXISTS myhash field1

(integer) 1

127.0.0.1:6379> HEXISTS myhash field2

(integer) 0

3 HGET key field 
Lấy giá trị của một field hash đã lưu trữ ở key xác định

127.0.0.1:6379> HGET KEY_NAME FIELD_NAME

127.0.0.1:6379> HSET myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HGET myhash field1

“foo”

127.0.0.1:6379> HEXISTS myhash field2

(nil)

4 HGETALL key 
Lấy tất cả field và value đã lưu trong một hash của key xác định

127.0.0.1:6379> HGETALL KEY_NAME

127.0.0.1:6379> HSET myhash field1 “Hello”

(integer) 1

127.0.0.1:6379> HSET myhash field2 “World”

(integer) 1

127.0.0.1:6379> HGETALL myhash

1) “field1”

2) “Hello”

3) “field2”

4) “World”

5 HINCRBY key field increment 
Tăng giá trị số nguyên của field hash lên một số chỉ định

127.0.0.1:6379> HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER

127.0.0.1:6379> HSET myhash field1 20

(integer) 1

redis 127.0.0.1:6379> HINCRBY myhash field 1

(integer) 21

127.0.0.1:6379> HINCRBY myhash field -1

(integer) 20

6 HINCRBYFLOAT key field increment 
Tăng giá trị số thực của field hash bởi giá trị được cho

127.0.0.1:6379> HINCRBYFLOAT KEY_NAME FIELD_NAME INCR_BY_NUMBER

127.0.0.1:6379> HSET myhash field 20.50

(integer) 1

127.0.0.1:6379> HINCRBYFLOAT mykey field 0.1

“20.60”

7 HKEYS key 
Lấy tất cả field trong một hash

127.0.0.1:6379> HKEYS KEY_NAME

127.0.0.1:6379> HSET myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HSET myhash field2 “bar”

(integer) 1

127.0.0.1:6379> HKEYS myhash

1) “field1”

2) “field2”

8 HLEN key 
Lấy số field trong một hash

127.0.0.1:6379> HLEN KEY_NAME

127.0.0.1:6379> HSET myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HSET myhash field2 “bar”

(integer) 1

127.0.0.1:6379> HLEN myhash

(integer) 2

9 HMGET key field1 [field2] 
Lấy tất cả giá trị của các hash field

127.0.0.1:6379> HMGET KEY_NAME FIELD1…FIELDN

127.0.0.1:6379> HSET myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HSET myhash field2 “bar”

(integer) 1

127.0.0.1:6379> HMGET myhash field1 field2 nofield

1) “foo”

2) “bar”

3) (nil)

10 HMSET key field1 value1 [field2 value2 ] 
Set nhiều hash field tới nhiều giá trị

127.0.0.1:6379> HMSET KEY_NAME FIELD1 VALUE1 …FIELDN VALUEN

127.0.0.1:6379> HMSET myhash field1 “foo” field2 “bar”

OK

127.0.0.1:6379> HGET myhash field1

“foo”

127.0.0.1:6379> HMGET myhash field2

“bar”

11 HSET key field value 
Set giá trị chuỗi của field hash

127.0.0.1:6379> HSET KEY_NAME FIELD VALUE

127.0.0.1:6379> HSET myhash field1 “foo”

OK

127.0.0.1:6379> HGET myhash field1

“foo”

12 HSETNX key field value 
Set giá trị của field hash, chỉ set nếu field không tồn tại

127.0.0.1:6379> HSETNX KEY_NAME FIELD VALUE

127.0.0.1:6379> HSETNX myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HSETNX myhash field1 “bar”

(integer) 0

127.0.0.1:6379> HGET myhash field1

“foo”

13 HVALS key 
Lấy tất cả giá trị trong một hash

127.0.0.1:6379> HVALS KEY_NAME FIELD VALUE

127.0.0.1:6379> HSET myhash field1 “foo”

(integer) 1

127.0.0.1:6379> HSET myhash field2 “bar”

(integer) 1

127.0.0.1:6379> HVALS myhash

1) “foo”

2) “bar”

0