Skip to main content

Redis Data types - Kiểu dữ liệu trong Redis

Redis hỗ trợ 5 kiểu dữ liệu, bao gồm:

1. Strings

Redis string là lệnh sử dụng để quản lý các key/value trong đó value có giá trị string trong redis.

Ví dụ:

redis 127.0.0.1:6379> SET name "laptrinh.vn"
OK
redis 127.0.0.1:6379> GET name
"laptrinh.vn"

Trong ví dụ trên, sử dụng SET và SET command, name là key được sử dụng trong Redis và laptrinh.vn là giá trị được lưu trữ

Chú ý: Một string value có thể được lưu trữ đến 512 megabytes.

Các lệnh thường dùng:

STT Command Ý nghĩa
1 SET key value Đặt giá trị value cho key
2 GET key Lấy giá trị lưu trữ bởi key
3 GETRANGE key start end Lấy giá trị lưu trữ bởi key từ (start) đến (end)
4 GETSET key value Lấy ra giá trị cũ và đặt giá trị mới cho key
5 MGET key1 key2 .. Lấy giá trị của nhiều key theo thứ tự
6 SETEX key seconds value Đặt giá trị và thời gian expire cho key
7 SETNX key value Đặt giá trị cho key nếu key chưa tồn tại
8 RENAMENX key newkey Đổi tên key sang newkey nếu newkey chưa tồn tại
9 STRLEN key Lấy độ dài giá trị lưu trữ bởi key
9 APPEND key value Thêm vào sau giá trị lưu trữ bởi key là value
10 INCR key Tăng giá trị lưu trữ của key (số nguyên) 1 đơn vị
11 INCRBY key n Tăng giá trị lưu trữ của key (số nguyên) n đơn vị
12 DECR key Giảm giá trị lưu trữ của key (số nguyên) 1 đơn vị
11 DECRBY key n Giảm giá trị lưu trữ của key (số nguyên) n đơn vị
2. Hashes

Redis hash lưu trữ hash table của các cặp key-value, trong đó key được sắp xếp ngẫu nhiên, không theo thứ tự nào cả. Redis hỗ trợ các thao tác thêm, đọc, xóa từng phần tử, cũng như đọc tất cả giá trị.

Ví dụ:

redis 127.0.0.1:6379> HMSET user:1 username laptrinh.vn password
laptrinh.vn points 200
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "laptrinh.vn"
3) "password"
4) "laptrinh.vn"
5) "points"
6) "200"

Chú ý: Mỗi Redis hash có thể lưu trữ đến 232-1 cặp field-value (> 4 tỷ).

Các lệnh thường dùng:

STT Command Ý nghĩa
1 HSET key field value Đặt giá trị cho field là value trong hash
2 HGET key field Lấy giá trị của field trong hash
3 HDEL key field1 field2 ... xóa field1, field2 ... trong hash
4 HEXISTS key field Kiểm tra file có tồn tại trong hash không
5 HGETALL key Lấy tất cả các field và value của nó trong hash
6 HINCRBY key field n Tăng giá trị của field (số nguyên) lên n đơn vị
7 HDECRBY key field n Giảm giá trị của field (số nguyên) lên n đơn vị
8 HINCRBYFLOAT key field f Tăng giá trị của field (số thực) lên f
9 HDECRBYFLOAT key field n Giảm giá trị của field (số thực) f
10 HKEYS key Lấy tất cả các field của hash
11 HVALS key Lấy tất cả các value của hash
12 HLEN key Lấy số lượng field của hash
13 HMSET key field1 value1 field2 value2 ... Đặt giá trị cho các field1 giá trị value1 field2 giá trị value2 ...
14 HMGET key field1 field2 ... Lấy giá trị của các field1 field2 ...
3. Lists

Redis Lists là danh sách liên kết của các strings. Redis hỗ trợ các thao tác push, pop từ cả 2 phía của list, trim dựa theo offset, đọc 1 hoặc nhiều items của list, tìm kiếm và xóa giá trị.

Ví dụ:

redis 127.0.0.1:6379> lpush tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> lpush tutoriallist mongodb
(integer) 2
redis 127.0.0.1:6379> lpush tutoriallist rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange tutoriallist 0 10

1) "rabitmq"
2) "mongodb"
3) "redis"

Chú ý: Độ dài lớn nhất của Redis List là 232-1 phần tử (> 4 tỷ).

Các lệnh thường dùng:

STT Command Ý nghĩa
1 LINDEX key index Lấy giá trị từ danh sách (list) ở vị trí index (index bắt đầu từ 0)
2 LLEN key Lấy số lượng phần tử trong danh sách
3 LPOP key Lấy phần tử ở đầu danh sách
4 LPUSH key value1 value2 ... Thêm value1 value2... vào đầu danh sách
5 LRANGE key start stop Lấy các phần tử trong list từ vị trí start đến vị trí stop
6 LSET key index value Đặt lại giá trị tại index bằng value
7 RPOP key Lấy giá trị ở cuối danh sách
8 RPUSH key value1 value2 ... Thêm phần tử value1 value2 ... vào cuối danh sách
9 LINSERT key BEFORE value1 value2 Thêm phần tử value2 vào trước phần tử value1 trong danh sách
10 LINSERT key AFTER value1 value2 Thêm phần tử value2 vào sau phần tử value1 trong danh sách
4. Sets

Redis Sets là tập hợp các string (không được sắp xếp). Redis hỗ trợ các thao tác thêm, đọc, xóa từng phần tử, kiểm tra sự xuất hiện của phần tử trong tập hợp. Ngoài ra Redis còn hỗ trợ các phép toán tập hợp, gồm intersect/union/difference.

Ví dụ:

redis 127.0.0.1:6379> sadd tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist mongodb
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers tutoriallist

1) "rabitmq"
2) "mongodb"
3) "redis"

Chú ý: Số phần tử lớn nhất trong Redis Set được lưu trữ là 232-1 phần tử (> 4 tỷ).

Các lệnh thường dùng:

STT Command Ý nghĩa
1 SADD key value1 value2 .. Thêm các giá trị value1 value2 ... vào tập hợp
2 SCARD key Lấy số lượng phần tử trong tập hợp
3 SMEMBERS key Lấy các phần tử trong tập hợp
4 SPOP key Xóa bỏ ngẫu nhiên một phần tử trong tập hợp và trả về giá trị phần tử đó
5. Sorted Sets (ZSets)

Redis Sorted Sets là 1 danh sách, trong đó mỗi phần tử là map của 1 string (member) và 1 floating-point number (score), danh sách được sắp xếp theo score này. Redis hỗ trợ thao tác thêm, đọc, xóa từng phần tử, lấy ra các phần tử dựa theo range của score hoặc của string.

Ví dụ:

redis 127.0.0.1:6379> zadd tutoriallist 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000

1) "redis"
2) "mongodb"
3) "rabitmq"

Các lệnh thường dùng:

STT Command Ý nghĩa
1 ZADD key score1 value1 score2 value2 .. Thêm các phần tử value1 value2 vào sorted set với độ ưu tiên tương ứng là score1 và score2
2 SCARD key Lấy số lượng phần tử trong sorted set
3 ZRANGE key start stop Lấy các phần tử trong tập hợp từ start đến stop
4 ZRANGE key start stop WITHSCORES Lấy các phần tử trong tập hợp từ start đến stop kèm theo giá trị score của chúng
5 ZSCORE key member Lấy giá trị score của member
6 ZRANK key member Lấy vị trí của member trong sorted set
7 ZCOUNT key score1 score2 Đếm số member có score tương ứng trong đoạn score1 đến score2