Một số commands trong redis
Bài đăng này đã không được cập nhật trong 4 năm
Một số commands trong redis
- Redis là gì ?
- Các commands trong redis
- Kết
1. Redis là gì ?
- Redis là open source, nó lưu trữ cấu trúc dữ liệu trong bộ nhớ và được sử dụng làm cơ sở dữ liệu, bộ đệm.
- Redis hỗ trợ các cấu trúc dữ liệu như: Strings, Hashes, Lists, sets với các truy vấn
- Ngoài ra để đạt được hiệu suất cao, redis làm việc với bộ dữ liệu trong bộ nhớ tuỳ thuộc vào trường hợp sử dụng của bạn.
2. Các commands trong redis
Strings
Strings là loại giá trị cơ bản nhất của Redis, nó có thể chưa bất kì loại dữ liệu nào, ví dụ như hình ảnh JPEG hoặc ruby object, giá trị chuỗi có thể dài tối đa 512MB
Một số command với Strings trong redis :
SET: dùng để cài đặt giá trị cho 1 key, nếu nó đã tồn tại thì giá trị sẽ bị ghi đè. Nó trả về OK nếu SET được thực thi thành công
ví dụ:
> $redis.set "set_key",1
=> "OK"
GET: lấy giá trị của key, nếu key không tồn tại thì trả về giá trị nil
ví dụ:
> $redis.get "get_key"
=> "1"
> $redis.get "get_key"
=> nil
INCR: Tăng giá trị của key thêm 1 đơn vị, nếu nó không tồn tại sẽ tự động tạo key mới và trả về giá trị là 1
ví dụ:
> $redis.incr "inc_key"
=> 1
> $redis.get "inc_key"
=> "1"
INCRBY: Tăng giá trị của key với giá trị nhập vào, nếu nó không tồn tại sẽ tự động tạo key mới và trả về giá trị là đã nhập
ví dụ:
> $redis.incrby "incrby_key", 100
=> 100
> $redis.get "incrby_key"
=> "100"
DECR: Giảm giá trị của key thêm 1 đơn vị, nếu nó không tồn tại sẽ tự động tạo key mới và trả về giá trị là -1
ví dụ:
> $redis.decr "decr_key"
=> -1
> $redis.get "decr_key"
=> "-1"
APPEND: Dùng để nối chuỗi, nếu key đã tồn tại và có giá trị thì nối chuỗi được thực hiện, nếu không một key và value mới được tạo ra
ví dụ:
> $redis.append "append_key", "hello"
=> 5
> $redis.get "append_key"
=> "hello"
> $redis.append "append_key", " world"
=> 11
> $redis.get "append_key"
=> "hello world"
Ngoài ra còn có các commands hữu ích khác như: GETRANGE, SETRANGE, GETBIT và SETBIT
Hashes
Được sử dụng để lưu dữ liệu dạng hash, chúng là kiểu dữ liệu khá hoàn hảo để biểu diễn các đối tượng, ví dụ như chiếc xe có màu săc, kích thước,...
Một hash với một vài trường được lưu trữ với ít không gian, do đó có thể lưu trữ hàng triệu đối tượng.
Mỗi hash có thể lưu tới tối đa 2^32 -1 cặp giá trị
Một số command với Hashes trong redis :
HGET: Trả về giá trị của hash đã được lưu trữ trong key, trả về nil nếu giá trị không tồn tại
HSET: Cài đặt giá trị cho hash với cặp key-value
HEXISTS: Trả về true nếu giá trị tồn tại và false nếu giá trị không tồn tại
ví dụ:
> $redis.hset "hash_test", "color", "red"
=> true
> $redis.hget "hash_test", "color"
=> "red"
> $redis.hget "hash_test", "type"
=> nil
> $redis.hexists "hash_test", "color"
=> true
> $redis.hexists "hash_test", "type"
=> false
Ngoài ra còn có các commands hữu ích khác như: HGETALL, HINCRBY, HINCRBYFLOAT, HKEYS, HLEN, HMGET, HMSET, HSCAN, HSETNX, HSTRLEN và HVALS.
Sets
Cho phép lưu trữ dữ liệu dạng key-value, key-value là duy nhất và không lăp lại.
Một số command với Sets trong redis :
SADD: Thêm các giá trị vào tập hợp đã được lưu trữ trong key
SMEMBERS: Trả về tất cả các giá trị của tập hợp đã được lưu trữ trong key
ví dụ:
> $redis.sadd "sets_test", "hello"
=> true
> $redis.sadd "sets_test", "world"
=> true
> $redis.smembers "sets_test"
=> ["hello", "world"]
Ngoài ra còn có các command hữu ích khác như: SCARD, SDIFF, SDIFFSTORE, SINTER, SINTERSTORE, SISMEMBER, SMOVE, SPOP, SRANDMEMBER, SREM, SSCAN, SUNION và SUNIONSTORE.
Lists
Là danh sách các chuỗi được sắp xếp theo thứ tự chèn.
Một số command với Lists trong redis :
LPUSH: Chèn tất cả giá trị được chỉ định vào đầu danh sách đã được lưu trữ tại key
LRANGE: Trả về các phần tử được chỉ định của danh sách đã được lưu trữ tại key
ví dụ:
> $redis.lpush "lists_test", "world"
=> 1
> $redis.lpush "lists_test", "hello"
=> 2
> $redis.lrange "lists_test", 0, -1
=> ["hello", "world"]
Ngoài ra còn có các commands hữu ích khác như: BLPOP, BRPOP, BRPOPLPUSH, LINDEX, LINSERT, LLEN, LPOP, LPUSHX, LREM, LSET, LTRIM, RPOP, RPOPLPUSH, RPUSH và RPUSHX
3. Kết
Đây là những kiến thức mình tìm hiểu được về redis command, ngoài ra các bạn có thể tham khảo thêm link dưới đây: https://redis.io/commands
All rights reserved