Thứ sáu, 20/09/2019 | 00:00 GMT+7

Cách quản lý chuỗi trong Redis

Redis là một repodata key-value open-souce trong bộ nhớ. Trong Redis, chuỗi là loại giá trị cơ bản nhất mà bạn có thể tạo và quản lý. Hướng dẫn này cung cấp tổng quan về cách tạo và truy xuất các chuỗi, cũng như cách thao tác các giá trị được giữ bởi các khóa chuỗi.

Cách sử dụng Hướng dẫn này

Hướng dẫn này được viết như một bảng lừa đảo với các ví dụ riêng. Ta khuyến khích bạn chuyển đến bất kỳ phần nào có liên quan đến nhiệm vụ bạn đang cố gắng hoàn thành.

Các lệnh hiển thị trong hướng dẫn này đã được thử nghiệm trên server Ubuntu 18.04 chạy Redis version 4.0.9 . Để cài đặt một môi trường tương tự, bạn có thể làm theo Bước 1 trong hướng dẫn của ta về Cách cài đặt và bảo mật Redis trên Ubuntu 18.04 . Ta sẽ chứng minh các lệnh này hoạt động như thế nào bằng cách chạy chúng với redis-cli , giao diện dòng lệnh Redis. Lưu ý nếu bạn đang sử dụng một giao diện Redis khác - ví dụ như Redli - kết quả kết quả chính xác của một số lệnh nhất định có thể khác nhau.

Ngoài ra, bạn có thể cung cấp một version database Redis được quản lý để kiểm tra các lệnh này, nhưng lưu ý tùy thuộc vào mức độ kiểm soát được nhà cung cấp database của bạn cho phép, một số lệnh trong hướng dẫn này có thể không hoạt động như được mô tả. Để cung cấp Dịch vụ database DigitalOcean, hãy làm theo tài liệu sản phẩm Dịch vụ database của ta . Sau đó, bạn phải cài đặt Redli hoặc cài đặt tunnel TLS để kết nối với Dịch vụ database qua TLS.

Tạo và quản lý chuỗi

Các phím giữ chuỗi chỉ có thể giữ một giá trị; bạn không thể lưu trữ nhiều hơn một chuỗi trong một khóa. Tuy nhiên, các chuỗi trong Redis là an toàn binary , nghĩa là một chuỗi Redis có thể chứa bất kỳ loại dữ liệu nào, từ các ký tự chữ và số đến hình ảnh JPEG. Giới hạn duy nhất là các chuỗi phải dài từ 512 MB trở xuống.

Để tạo một chuỗi, hãy sử dụng lệnh set . Ví dụ: lệnh set sau tạo một khóa có tên key_Welcome1 chứa chuỗi "Howdy" :

  • set key_Welcome1 "Howdy"
Output
OK

Để đặt nhiều chuỗi trong một lệnh, hãy sử dụng mset :

  • mset key_Welcome2 "there" key_Welcome3 "partners,"

Bạn cũng có thể sử dụng lệnh append để tạo chuỗi:

  • append key_Welcome4 "welcome to Texas"

Nếu chuỗi được tạo thành công, append sẽ xuất ra một số nguyên bằng bao nhiêu ký tự mà chuỗi bao gồm:

Output
(integer) 16

Lưu ý append cũng được dùng để thay đổi nội dung của chuỗi. Xem phần thao tác trên chuỗi để biết chi tiết về điều này.

Truy xuất chuỗi

Để truy xuất một chuỗi, hãy sử dụng lệnh get :

  • get key_Welcome1
Output
"Howdy"

Để truy xuất nhiều chuỗi bằng một lệnh, hãy sử dụng mget :

  • mget key_Welcome1 key_Welcome2 key_Welcome3 key_Welcome4
Output
1) "Howdy" 2) "there" 3) "partners," 4) "welcome to Texas"

Đối với mọi khóa được chuyển đến mget không chứa giá trị chuỗi hoặc hoàn toàn không tồn tại, lệnh sẽ trả về nil .

Thao tác chuỗi

Nếu một chuỗi được tạo thành từ một số nguyên, bạn có thể chạy lệnh incr để tăng nó lên một:

  • set key_1 3
  • incr key_1
Output
(integer) 4

Tương tự, bạn có thể sử dụng lệnh incrby để tăng giá trị của một chuỗi số theo một mức tăng cụ thể:

  • incrby key_1 16
Output
(integer) 20

Lệnh decrdecrby hoạt động theo cùng một cách, nhưng chúng làm giảm số nguyên được lưu trữ trong một chuỗi số:

  • decr key_1
Output
(integer) 19
  • decrby key_1 16
Output
(integer) 3

Nếu một chuỗi chữ cái đã tồn tại, append sẽ nối giá trị vào cuối giá trị hiện có và trả về độ dài mới của chuỗi. Để minh họa, lệnh sau nối ", y'all" vào chuỗi được giữ bởi khóa key_Welcome4 , vì vậy bây giờ chuỗi sẽ có nội dung "welcome to Texas, y'all" :

  • append key_Welcome4 ", y'all"
Output
(integer) 15

Bạn cũng có thể nối các số nguyên vào một chuỗi chứa một giá trị số. Ví dụ sau nối 45 với 3 , số nguyên được giữ trong key_1 , vì vậy nó sẽ giữ 345 . Trong trường hợp này, append cũng sẽ trả về độ dài mới của chuỗi, thay vì giá trị mới của nó:

  • append key_1 45
Output
(integer) 3

Vì khóa này vẫn chỉ giữ một giá trị số nên bạn có thể thực hiện các phép toán incrdecr trên nó. Bạn cũng có thể nối các ký tự chữ cái vào một chuỗi số nguyên, nhưng nếu bạn làm điều này thì việc chạy incrdecr trên chuỗi sẽ tạo ra lỗi vì giá trị chuỗi không còn là số nguyên.

Kết luận

Hướng dẫn này trình bày chi tiết một số lệnh được sử dụng để tạo và quản lý chuỗi trong Redis. Nếu có các lệnh, đối số hoặc quy trình liên quan khác mà bạn muốn xem được nêu trong hướng dẫn này, vui lòng hỏi hoặc đưa ra đề xuất trong phần comment bên dưới.

Để biết thêm thông tin về các lệnh Redis, hãy xem loạt bài hướng dẫn của ta về Cách quản lý database Redis .


Tags:

Các tin liên quan

Cách quản lý database và khóa Redis
2019-09-20
Cách quản lý danh sách trong Redis
2019-09-20
Cách quản lý hàm băm trong Redis
2019-09-20
Cách khắc phục sự cố trong Redis
2019-09-20
Cách quản lý danh sách trong Redis
2019-09-20
Cách đánh giá hiệu suất của server Redis trên Ubuntu 18.04
2019-08-16
Cách cài đặt và bảo mật Redis trên Debian 10
2019-07-16
Cách cài đặt và bảo mật Redis trên Debian 9
2018-09-05
Cách cài đặt Redis từ nguồn trên Ubuntu 18.04
2018-06-27
Cách bảo mật cài đặt Redis của bạn trên Ubuntu 18.04
2018-06-27