- vừa được xem lúc

[Redis] - Các vấn đề liên quan đến bộ nhớ

0 0 14

Người đăng: TheLight

Theo Viblo Asia

Các vấn đề liên quan đến bộ nhớ

Lệnh memory usage cho chúng ta biết lượng bộ nhớ hiện đang được sử dụng bởi một key. Nó lấy tên của một key làm đối số và xuất ra số byte mà nó sử dụng:

> memory usage key_meaningOfLife Output
(integer) 42 

Để hiểu tổng quát hơn về cách server Redis của chúng ta đang sử dụng bộ nhớ, chúng ta có thể chạy lệnh memory stats :

> memory stats

Lệnh này xuất ra một mảng các số liệu liên quan đến bộ nhớ và các giá trị của chúng. Sau đây là các chỉ số được báo cáo theo memory stats:

  • peak.allocated : Số byte cao nhất được Redis sử dụng
  • total.allocated : Tổng số byte được Redis phân bổ
  • startup.allocated : Số byte ban đầu được Redis sử dụng khi khởi động
  • replication.backlog : Kích thước của replication backlog, tính bằng byte
  • clients.slaves : Tổng kích thước của tất cả các chi phí bản sao ( cache kết quả và truy vấn cũng như bối cảnh kết nối)
  • clients.normal : Tổng kích thước của tất cả các chi phí khách hàng
  • aof.buffer : Tổng kích thước của cache tệp hiện tại và ghi lại tệp chỉ bổ sung
  • db. 0 : Tổng chi phí của từ điển chính và từ điển hết hạn cho mỗi database đang được sử dụng trên server , được báo cáo bằng byte
  • overhead.total : Tổng của tất cả các chi phí được sử dụng để quản lý không gian phím của Redis
  • keys.count : Tổng số key được lưu trữ trong tất cả các database trên server
  • keys.bytes-per-key : Tỷ lệ sử dụng bộ nhớ ròng của server và số lượng keys.count
  • dataset.bytes : Kích thước của tập dữ liệu, tính bằng byte
  • dataset.percentage : Phần trăm sử dụng bộ nhớ ròng của Redis do dataset.bytes thực hiện
  • peak.percentage : Phần trăm peak.allocated được lấy ra trong tổng số total.allocated
  • fragmentation : Tỷ lệ dung lượng bộ nhớ hiện đang sử dụng chia cho bộ nhớ vật lý mà Redis thực sự đang sử dụng
  • memory malloc-stats cung cấp một báo cáo thống kê nội bộ từ jemalloc , trình cấp phát bộ nhớ được Redis sử dụng trên các hệ thống Linux:
> memory malloc-stats 

Nếu có vẻ như chúng ta đang gặp phải các vấn đề liên quan đến bộ nhớ, nhưng việc phân tích cú pháp kết quả của các lệnh trước đó tỏ ra không hữu ích, chúng ta có thể thử chạy memory doctor :

> memory doctor 

Tính năng này sẽ đưa ra bất kỳ vấn đề tiêu thụ bộ nhớ nào mà nó có thể tìm thấy và đề xuất các giải pháp tiềm năng.

Lệnh gỡ lỗi không liên quan trực tiếp đến quản lý bộ nhớ là monitor . Lệnh này cho phép chúng ta xem một stream liên tục của mọi lệnh được xử lý bởi server Redis:

> monitor Output
OK 1566157213.896437 [0 127.0.0.1:47740] "auth" "foobared" 1566157215.870306 [0 127.0.0.1:47740] "set" "key_1" "878" 

Một lệnh khác hữu ích để gỡ lỗi là info , trả về một số khối thông tin và thống kê về server :

> info Output
# Server redis_version:4.0.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:9435c3c2879311f3 redis_mode:standalone os:Linux 4.15.0-52-generic x86_64 . . . 

Lệnh này trả về rất nhiều thông tin. Nếu chúng ta chỉ muốn xem một khối thông tin, chúng ta có thể chỉ định nó làm đối số cho info :

> info CPU Output
# CPU used_cpu_sys:173.16 used_cpu_user:70.89 used_cpu_sys_children:0.01 used_cpu_user_children:0.04 

Lưu ý thông tin được trả về bởi lệnh info sẽ phụ thuộc vào version Redis chúng ta đang sử dụng.

Sử dụng các keys Command

Lệnh keys rất hữu ích trong trường hợp chúng ta quên tên của key hoặc có thể chúng ta đã tạo một key nhưng vô tình viết sai chính tả tên của nó. keys tìm kiếm các từ key phù hợp với một mẫu:

> keys pattern 

Các biến kiểu hình cầu sau đây được hỗ trợ

  • ? là ký tự đại diện đại diện cho bất kỳ ký tự đơn nào, vì vậy s?mmy trùng với sammy , sommysqmmy
  • * là ký tự đại diện đại diện cho bất kỳ số ký tự nào, không bao gồm ký tự nào cả, vì vậy sa*y trùng với sammy , say , sammmmmmysalmony
  • chúng ta có thể chỉ định hai hoặc nhiều ký tự mà mẫu có thể bao gồm bằng cách đặt chúng trong dấu ngoặc vuông, vì vậy s[ai]mmy sẽ trùng với sammysimmy , nhưng không trùng với summy
  • Để đặt ký tự đại diện bỏ qua một hoặc nhiều chữ cái, hãy quấn chúng trong dấu ngoặc và đứng trước chúng bằng ký tự (^), vì vậy s[^oi]mmy sẽ trùng với sammysxmmy , nhưng không sommy hoặc simmy
  • Để đặt một ký tự đại diện bao gồm một loạt các chữ cái, hãy tách phần đầu và phần cuối của dải bằng dấu gạch ngang và đặt nó trong dấu ngoặc vuông, vì vậy s[ao]mmy sẽ trùng với sammy , skmmysommy , nhưng không srmmy

Cảnh báo: Các tài liệu Redis cảnh báo rằng keys nên hầu như không bao giờ được sử dụng trong một môi trường production , vì nó có thể có tác động tiêu cực lớn đến hiệu suất.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Caching đại pháp 2: Cache thế nào cho hợp lý?

Caching rất dễ. Mình không nói đùa đâu, caching rất là dễ. Ai cũng có thể làm được chỉ sau 10 phút đọc tutorial. Nó cũng giống như việc đứa trẻ lên 3 đã có thể cầm bút để vẽ vậy.

0 0 114

- vừa được xem lúc

Caching đại pháp 1: Nấc thang lên level của developer

Bí quyết thành công trong việc đáp ứng hệ thống triệu user của những công ty lớn (và cả công ty nhỏ). Tại sao caching lại là kỹ thuật tối quan trọng để phù phép ứng dụng rùa bò của chúng ta thành siêu phẩm vạn người mê.

0 0 67

- vừa được xem lúc

Cache dữ liệu Nodejs với Redis

Một tí gọi là lý thuyết để anh em tham khảo. Cache là gì. Lợi ích của việc cache data. .

0 0 97

- vừa được xem lúc

Nguyên tắc hoạt động của redis server

Sự ra đời của Redis. . Câu chuyện bắt đầu khi tác giả của Redis, Salvatore Sanfilippo. (nickname: antirez), cố gắng làm những công việc gần như là không.

0 0 75

- vừa được xem lúc

Viết ứng dụng chat realtime với Laravel, VueJS, Redis và Socket.IO, Laravel Echo

Xin chào tất cả các bạn, đây là một trong những bài post đầu tiên của mình. Sau bao năm toàn đi đọc các blog tích luỹ được chút kiến thức của các cao nhân trên mạng.

0 0 905

- vừa được xem lúc

Tìm hiểu tổng quan về Redis

1. Lời mở đầu.

0 0 352