01/10/2018, 15:36

Bài 6: Redis – Strings

Redis strings commands được sử dụng để quản lý giá trị chuỗi trong redis. Cú pháp: 127.0.0.1:6379> COMMAND KEY_NAME EX: 127.0.0.1:6379> SET dammelaptrinh redis OK 127.0.0.1:6379> GET dammelaptrinh “redis” Redis Strings Commands ...

Redis strings commands được sử dụng để quản lý giá trị chuỗi trong redis.

Cú pháp:

127.0.0.1:6379> COMMAND KEY_NAME

EX:

127.0.0.1:6379> SET dammelaptrinh redis

OK

127.0.0.1:6379> GET dammelaptrinh

“redis”

Redis Strings Commands

S.N. Command & Description
1 SET key value 

Lệnh này set giá trị vào key chỉ định.

127.0.0.1:6379> SET KEY_NAME VALUE

EX: 27.0.0.1:6379> SET dammelaptrinh redis

Trong SET command có nhiều giá trị tùy chọn để thay đổi hành vi của câu lệnh như sau:

127.0.0.1:6379> SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]

·         EX seconds – set thời gian hết hạn bằng giây.

·         PX milliseconds – set thời gian hết hạn bằng milli giây.

·         NX – Chỉ set key nếu nó không tồn tại.

·         XX – Chỉ set key nếu nó đã tồn tại.

EX:

127.0.0.1:6379> SET dammelaptrinh redis EX 60 NX

OK

Ví dụ trên sẽ set key dammelaptrinh, với hết hạn 60 giây, nếu key không tồn tại, nghĩa là đây là key mới thì set, còn nó mà có rồi thì bạn chọn lại XX thay vì NX. Ok con dê cũng dể hiểu mà.

2 GET key 
Lấy giá trị của một key127.0.0.1:6379> GET KEY_NAME

EX:

127.0.0.1:6379> SET dammelaptrinh redis

OK

127.0.0.1:6379> GET dammelaptrinh

“redis”

3 GETRANGE key start end 
Lấy một chuỗi con của một chuỗi đã lưu ở một key127.0.0.1:6379> GETRANGE KEY_NAME start end

127.0.0.1:6379> SET mykey “This is my test key”

OK

127.0.0.1:6379> GETRANGE mykey 0 3

“This”

127.0.0.1:6379> GETRANGE mykey 0 -1 // -1 là đi từ cuối do vậy nó lấy hết.

“This is my test key”

4 GETSET key value
Set giá trị chuỗi của một key và trả về giá trị cũ của nó, nếu key không tồn tại thì nil127.0.0.1:6379> GETSET KEY_NAME VALUE

127.0.0.1:6379> GETSET mynewkey “This is my test key”

(nil)

127.0.0.1:6379> GETSET mynewkey “This is my new value to test getset”

“This is my test key”

5 GETBIT key offset
Trả về một giá trị bit tại vị trí trong chuỗi đã lưu ở key127.0.0.1:6379> GETBIT KEY_NAME OFFSET

127.0.0.1:6379> SETBIT mykey 7 1

(integer) 0

127.0.0.1:6379> GETBIT mykey 0

(integer) 0

127.0.0.1:6379> GETBIT mykey 7

(integer) 1

127.0.0.1:6379> GETBIT mykey 100

(integer) 0

6 MGET key1 [key2..]

Lấy các giá trị của tất cả key

127.0.0.1:6379> MGET KEY1 KEY2 .. KEYN

127.0.0.1:6379> SET key1 “hello”

OK

127.0.0.1:6379> SET key2 “world”

OK

127.0.0.1:6379> MGET key1 key2 someOtherKey

1) “Hello”

2) “World”

3) (nil)

7 SETBIT key offset value
Set  bit ở vị trí trong chuỗi lưu ở key
8 SETEX key seconds value
Set giá trị hết hạn của một key127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE

127.0.0.1:6379> SETEX mykey 60 redis

OK

127.0.0.1:6379> TTL mykey

60

127.0.0.1:6379> GET mykey

“redis”

9 SETNX key value
Set giá trị của một key, nếu key không tồn tại127.0.0.1:6379> SETNX KEY_NAME VALUE

127.0.0.1:6379> SETNX mykey redis

(integer) 1

127.0.0.1:6379> SETNX mykey mongodb

(integer) 0

127.0.0.1:6379> GET mykey

“redis”

10 SETRANGE key offset value
Ghi đè một phần của chuỗi trong key, bắt đầu từ vị trí offset.127.0.0.1:6379> SETRANGE KEY_NAME OFFSET VALUE

127.0.0.1:6379> SET key1 “Hello World”

OK

127.0.0.1:6379> SETRANGE key1 6 “Redis”

(integer) 11

127.0.0.1:6379> GET key1

“Hello Redis”

11 STRLEN key
Lấy chiều dài giá trị lưu trữ trong một key127.0.0.1:6379> STRLEN KEY_NAME

127.0.0.1:6379> SET key1 “Hello World”

OK

127.0.0.1:6379> STRLEN key1

(integer) 11

127.0.0.1:6379> STRLEN key2

(integer) 0

12 MSET key value [key value …]
Set nhiều keys tới nhiều values127.0.0.1:6379> MSET key1 value1 key2 value2 .. keyN valueN

127.0.0.1:6379> MSET key1 “Hello” key2 “World”

OK

127.0.0.1:6379> GET key1

“Hello”

127.0.0.1:6379> GET key2

1) “World”

13 MSETNX key value [key value …] 
set nhiều keys tới nhiều values nếu key không tồn tại127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN

127.0.0.1:6379> MSETNX key1 “Hello” key2 “world”

(integer) 1

127.0.0.1:6379> MSETNX key2 “worlds” key3 “third key”

(integer) 0

127.0.0.1:6379> MGET key1 key2 key3

1) “Hello”

2) “world”

3) (nil)

14 PSETEX key milliseconds value
Set giá trị và hết hạn mili giây của một key127.0.0.1:6379> PSETEX key1 EXPIRY_IN_MILLISECONDS value1

127.0.0.1:6379> PSETEX mykey 1000 “Hello”

OK

127.0.0.1:6379> PTTL mykey

999

127.0.0.1:6379> GET mykey

1) “Hello”

15 INCR key
Tăng giá trị số nguyên của key lên 1127.0.0.1:6379> INCR KEY_NAME

127.0.0.1:6379> SET visitors 1000

OK

127.0.0.1:6379> INCR visitors

(integer) 1001

127.0.0.1:6379> GET visitors

(integer) 1001

16 INCRBY key increment
Tăng giá trị số nguyên của key lên một số lượng chỉ định127.0.0.1:6379> INCRBY KEY_NAME INCR_AMOUNT

127.0.0.1:6379> SET visitors 1000

OK

127.0.0.1:6379> INCRBY visitors 5

(integer) 1005

127.0.0.1:6379> GET visitors

(integer) 1005

17 INCRBYFLOAT key increment
Tăng giá trị số thực của key lên số lượng chỉ định127.0.0.1:6379> INCRBYFLOAT KEY_NAME INCR_AMOUNT

127.0.0.1:6379> SET visitors 1000.20

OK

127.0.0.1:6379> INCRBYFLOAT visitors .50

1000.70

127.0.0.1:6379> GET visitors

1000.70

18 DECR key
Giảm giá trị số nguyên của key 1 đơn vị127.0.0.1:6379> DECR KEY_NAME

127.0.0.1:6379> SET visitors 1000

OK

127.0.0.1:6379> DECR visitors

(integer) 999

127.0.0.1:6379> SET visitors “13131312312312312312312rgergerg”

Ok

127.0.0.1:6379> DECR visitors

ERR value is not an integer or out of range

19 DECRBY key decrement
Giảm giá trị số nguyên của một key bằng số lượng chỉ định127.0.0.1:6379> DECRBY KEY_NAME DECREMENT_AMOUNT

127.0.0.1:6379> SET visitors 1000

OK

127.0.0.1:6379> DECRBY visitors 5

(integer) 995

20 APPEND key value
Ghi tiếp giá trị của một key127.0.0.1:6379> APPEND KEY_NAME NEW_VALUE

127.0.0.1:6379> SET mykey “hello”

OK

127.0.0.1:6379> APPEND mykey ” dammelaptrinh”

(integer) 20

127.0.0.1:6379> GET mykey

“hello dammelaptrinh”

Ngoài việc phải nhớ tên của command thì tôi nghĩ cú pháp câu lệnh cũng như cách sử dụng quá đơn giản.

Các bạn nên gõ nó vào trực tiếp terminal để trãi nghiệm thì sẽ tốt nhất cho việc luyện tập của các bạn.

0