Cache LRU là gì?
Cache LRU là hệ thống bộ nhớ đệm loại bỏ mục ít được sử dụng gần đây nhất khi cần giải phóng chỗ cho dữ liệu mới.LRU là viết tắt của Least Recently Used (ít được sử dụng gần đây nhất).Trong lĩnh vực tiền mã hóa, cache LRU không phải là token, blockchain, ví hay sản phẩm giao dịch.Đây là một mẫu thiết kế phần mềm được các node blockchain, ví, trình khám phá blockchain, indexer, dịch vụ RPC, dApp và hệ thống phân tích sử dụng để truy xuất dữ liệu thường dùng nhanh hơn.Bộ nhớ đệm lưu các bản sao của dữ liệu khó hoặc mất nhiều thời gian để truy xuất lặp lại.Tài liệu về cơ chế loại bỏ khóa của Redis giải thích rằng Redis thường được dùng làm bộ nhớ đệm để tăng tốc độ đọc dữ liệu từ các máy chủ hoặc cơ sở dữ liệu chậm hơn.
Cache LRU giữ dữ liệu mới được truy cập luôn sẵn có vì việc sử dụng gần đây thường là dấu hiệu cho thấy dữ liệu đó có thể sớm được yêu cầu lại.Khi bộ nhớ đệm đạt giới hạn dung lượng, mục được truy cập cách đây lâu nhất sẽ bị loại bỏ trước.Cache LRU hoạt động như thế nào?
Cache LRU hoạt động bằng cách theo dõi thứ tự các mục được truy cập.Khi người dùng, node hoặc ứng dụng yêu cầu một mục, bộ nhớ đệm sẽ kiểm tra xem mục đó đã được lưu hay chưa.Nếu tìm thấy mục đó, kết quả được gọi là cache hit (truy cập bộ nhớ đệm thành công).Nếu không tìm thấy, kết quả được gọi là cache miss (truy cập bộ nhớ đệm không thành công).Khi xảy ra cache miss, hệ thống phải lấy dữ liệu từ một nguồn chậm hơn, chẳng hạn như bộ nhớ đĩa, cơ sở dữ liệu, node blockchain, API bên ngoài hoặc một peer từ xa.Sau khi được truy xuất, dữ liệu sẽ được lưu vào bộ nhớ đệm để có thể sử dụng trong tương lai.Nếu bộ nhớ đệm đã đầy, hệ thống sẽ loại bỏ mục không được truy cập trong thời gian lâu nhất.Quy tắc đơn giản này giúp hệ thống giữ lại dữ liệu đang hoạt động, đồng thời loại bỏ dữ liệu cũ ít có khả năng sớm được cần đến.Vì sao cache LRU quan trọng trong crypto?
Các hệ thống crypto xử lý lượng lớn dữ liệu được yêu cầu lặp đi lặp lại.Ví có thể liên tục yêu cầu số dư, metadata token, ước tính phí gas, giao dịch gần đây và hình ảnh NFT.Trình khám phá blockchain có thể liên tục phục vụ các block phổ biến, biên nhận giao dịch, trang token, lịch sử địa chỉ và dữ liệu hợp đồng.Dịch vụ RPC có thể liên tục phản hồi các yêu cầu về số block mới nhất, trạng thái tài khoản, log, biên nhận giao dịch hoặc kết quả từ hợp đồng.Node có thể dùng bộ nhớ đệm để giảm số lần đọc dữ liệu trên đĩa, áp lực lên cơ sở dữ liệu, lệnh gọi mạng và các phép tính lặp lại.Nếu không có bộ nhớ đệm, nhiều ứng dụng crypto sẽ chậm hơn và tốn kém hơn khi vận hành.Cache LRU giúp cơ sở hạ tầng phản hồi nhanh, đồng thời giới hạn mức sử dụng bộ nhớ.Cache LRU và node blockchain
Node blockchain cần lưu trữ, xác minh, truy xuất và cung cấp lượng lớn dữ liệu.Full node có thể cần truy cập block, header, dữ liệu trạng thái, chỉ mục giao dịch, thông tin peer, dữ liệu mempool và kết quả thực thi.Tài liệu về Ethereum Portal Network giải thích rằng node Ethereum lưu trữ bản sao toàn bộ hoặc một phần của blockchain; dữ liệu cục bộ này được dùng để xác thực giao dịch và theo dõi đúng chuỗi.
Do dữ liệu blockchain có thể rất lớn, node thường cần các cách sử dụng bộ nhớ hiệu quả để giữ dữ liệu thường xuyên truy cập luôn sẵn có.Cache LRU có thể giúp node giữ dữ liệu block, kết quả tra cứu trạng thái, thông tin tài khoản hoặc thông tin peer vừa được sử dụng trong bộ nhớ.Điều này có thể giảm số lần đọc dữ liệu lưu trữ tốn kém và cải thiện thời gian phản hồi.Tuy nhiên, bộ nhớ đệm không thay thế việc xác thực.Node blockchain vẫn cần xác minh dữ liệu theo các quy tắc của giao thức.Cache LRU và API RPC
API RPC cho phép ví, dApp, công cụ giao dịch, nền tảng phân tích và hệ thống backend yêu cầu node cung cấp dữ liệu blockchain.Tài liệu về Ethereum JSON-RPC giải thích rằng các phương thức Ethereum JSON-RPC được dùng để truy vấn dữ liệu mạng và có thể được chia thành các nhóm như gossip, state và history.
Nhiều yêu cầu RPC được lặp lại thường xuyên, đặc biệt trong thời gian có nhiều người dùng hoạt động.Cache LRU có thể lưu phản hồi gần đây cho các yêu cầu an toàn để lưu đệm, chẳng hạn như metadata block, biên nhận, log hoặc thông tin token.Điều này có thể giảm độ trễ cho người dùng và giảm tải cho các node backend.Tuy nhiên, không phải phản hồi RPC nào cũng nên được lưu đệm theo cùng một cách.Dữ liệu cần cập nhật như giao dịch đang chờ xử lý, số dư mới nhất và ước tính phí gas có thể cần thời gian lưu đệm rất ngắn hoặc hoàn toàn không nên lưu đệm.Cache LRU và ví crypto
Ví crypto sử dụng dữ liệu được lưu đệm để cải thiện tốc độ trải nghiệm người dùng.Ví có thể lưu đệm biểu tượng token, tên token, metadata NFT, liên hệ gần đây, ước tính phí gas, trạng thái giao dịch và số dư đã tải trước đó.Nếu không có bộ nhớ đệm, mỗi màn hình trong ví có thể phải lấy lại cùng một dữ liệu từ node hoặc API.Cache LRU có thể giữ các tài sản và tài khoản được xem gần đây nhất để hiển thị nhanh.Điều này hữu ích khi người dùng chuyển đổi giữa các token, chain, tài khoản và dApp.Cần xử lý bộ nhớ đệm của ví cẩn thận vì dữ liệu lỗi thời có thể khiến người dùng hiểu nhầm.Ví dụ, số dư hoặc trạng thái giao dịch cũ có thể khiến người dùng nghĩ rằng tiền bị mất hoặc giao dịch vẫn đang chờ xử lý, trong khi blockchain đã cập nhật.Cache LRU và trình khám phá blockchain
Trình khám phá blockchain phụ thuộc nhiều vào khả năng truy xuất dữ liệu nhanh.Người dùng thường tìm kiếm block mới, hợp đồng token phổ biến, địa chỉ đang hoạt động, hash giao dịch và sự kiện hợp đồng thông minh.Cache LRU có thể giúp trình khám phá xử lý các lượt tìm kiếm lặp lại nhanh hơn.Ví dụ, một block vừa được đào có thể nhận nhiều lượt xem ngay sau khi xuất hiện.Một hợp đồng token phổ biến có thể nhận được nhiều lượt truy cập trong một sự kiện thị trường.Người dùng có thể tải lại một hash giao dịch đã biết nhiều lần trong khi chờ xác nhận.Cache LRU giúp giữ thông tin vừa được yêu cầu ở gần ứng dụng.Điều này cải thiện hiệu suất mà không cần hệ thống lưu mọi mục có thể có trong bộ nhớ mãi mãi.Cache LRU và indexer
Indexer sắp xếp dữ liệu blockchain để ứng dụng có thể truy vấn hiệu quả.Indexer có thể xử lý block, log, giao dịch token, số dư, NFT, sự kiện DeFi, phiếu biểu quyết quản trị và lệnh gọi hợp đồng thông minh.Indexer thường sử dụng cơ sở dữ liệu vì không phải lúc nào cũng dễ truy vấn trực tiếp dữ liệu blockchain thô.Cache LRU có thể được đặt trước cơ sở dữ liệu của indexer để tăng tốc các truy vấn lặp lại.Ví dụ, bảng điều khiển DeFi có thể liên tục yêu cầu cùng dữ liệu pool thanh khoản hoặc lịch sử ví.Bằng cách lưu đệm kết quả gần đây, indexer có thể giảm tải cơ sở dữ liệu và phản hồi nhanh hơn.Điều này đặc biệt hữu ích trong các giai đoạn có lưu lượng truy cập cao như khi ra mắt token, airdrop, bỏ phiếu quản trị hoặc thị trường biến động mạnh.Cache LRU và mempool
Mempool là tập hợp các giao dịch hợp lệ chưa được xác nhận của một node, đang chờ được đưa vào block.Mempool không giống với bộ nhớ đệm thông thường của ứng dụng, nhưng cũng cần giới hạn bộ nhớ và quy tắc loại bỏ.Tổng quan về cluster mempool của Bitcoin Optech thảo luận về tầm quan trọng của việc loại bỏ giao dịch khỏi mempool khi mempool của node vượt quá giới hạn dung lượng.
Mối liên hệ này giúp giải thích vì sao quản lý bộ nhớ quan trọng trong các hệ thống blockchain.LRU loại bỏ dữ liệu dựa trên mức độ gần đây của lần truy cập, trong khi việc loại bỏ khỏi mempool có thể xét đến mức phí, mối liên hệ giữa các giao dịch và động lực đào.Phép so sánh này hữu ích vì cho thấy các thành phần crypto khác nhau cần những chính sách loại bỏ khác nhau.LRU hữu ích khi việc truy cập gần đây dự báo khả năng truy cập trong tương lai, nhưng không phải lúc nào cũng phù hợp với việc lựa chọn giao dịch theo yếu tố kinh tế.Cache LRU và metadata NFT
Ứng dụng NFT thường sử dụng bộ nhớ đệm vì metadata và nội dung đa phương tiện có thể tải chậm.Giao diện marketplace NFT, ví hoặc thư viện ảnh có thể lưu đệm hình ảnh vừa xem, dữ liệu bộ sưu tập, thông tin đặc tính và metadata token.Cache LRU có thể cải thiện tốc độ tải khi người dùng xem cùng một bộ sưu tập hoặc quay lại các NFT đã xem gần đây.Tuy nhiên, metadata NFT có thể thay đổi, cập nhật chậm hoặc được lưu trữ trên nhiều hệ thống khác nhau.Nếu bộ nhớ đệm giữ metadata cũ quá lâu, người dùng có thể thấy hình ảnh hoặc đặc tính lỗi thời.Điều này đặc biệt quan trọng với các sự kiện reveal, NFT động, vật phẩm trong game và các bản cập nhật metadata.Ứng dụng NFT nên kết hợp cơ chế loại bỏ LRU với việc kiểm tra độ mới, quản lý phiên bản metadata và cài đặt thời gian tồn tại (TTL) hợp lý.Cache LRU và ứng dụng DeFi
Ứng dụng DeFi thường hiển thị dữ liệu thay đổi nhanh.Dữ liệu này có thể bao gồm giá token, thanh khoản, lãi suất vay, tỷ lệ tài sản thế chấp, tài sản dự trữ trong pool, ngưỡng thanh lý và vị thế của người dùng.Cache LRU có thể hỗ trợ việc đọc lặp lại các thông tin tương đối ổn định như danh sách token, ABI hợp đồng, biểu đồ lịch sử và cấu hình pool.Cần thận trọng khi sử dụng bộ nhớ đệm với dữ liệu nhạy cảm theo thời gian như giá, hệ số sức khỏe vị thế hoặc thông tin thanh lý.Cache DeFi lỗi thời có thể tạo ra rủi ro nghiêm trọng cho người dùng.Ví dụ, tỷ lệ tài sản thế chấp cũ có thể khiến người vay nghĩ rằng vị thế an toàn hơn thực tế.Trong DeFi, hiệu suất rất quan trọng, nhưng tính chính xác và độ mới của dữ liệu còn quan trọng hơn.Cache LRU và công cụ giao dịch
Công cụ giao dịch crypto có thể lưu đệm dữ liệu biểu đồ, chỉ báo, metadata token, cặp giao dịch, nến gần đây và cài đặt giao diện người dùng.Cache LRU giúp tránh phải tải lại cùng thông tin thị trường mỗi khi trader chuyển chế độ xem.Điều này có thể giúp bảng điều khiển hoạt động mượt mà hơn và giảm số lệnh gọi backend.Tuy nhiên, dữ liệu giao dịch có thể lỗi thời rất nhanh.Giá, spread, độ sâu sổ lệnh, tỷ lệ Funding và dữ liệu thanh lý có thể cần được cập nhật trực tiếp thay vì lưu đệm trong thời gian dài.Cache LRU phù hợp nhất với dữ liệu có thể chấp nhận độ trễ nhỏ hoặc được làm mới thường xuyên.Hệ thống giao dịch không bao giờ nên hiển thị dữ liệu cũ trong bộ nhớ đệm như thể đó là thông tin thị trường hiện tại.Cache LRU và cache LFU
Cache LRU loại bỏ mục ít được sử dụng gần đây nhất.Cache LFU loại bỏ mục ít được sử dụng thường xuyên nhất.Tài liệu Redis liệt kê cả LRU và LFU trong số các nhóm chính sách loại bỏ hiện có.LRU hữu ích khi hoạt động gần đây là dấu hiệu đáng tin cậy về hoạt động trong tương lai gần.LFU hữu ích khi mức độ phổ biến trong dài hạn quan trọng hơn thời điểm truy cập gần nhất.Với ứng dụng crypto, LRU có thể phù hợp với màn hình ví, giao dịch gần đây, block mới và bảng điều khiển đang hoạt động.LFU có thể phù hợp hơn với metadata token rất phổ biến, ABI hợp đồng thường dùng hoặc dữ liệu tham chiếu được tải thường xuyên.Nhiều hệ thống vận hành thực tế kết hợp nhiều chính sách thay vì áp dụng một quy tắc đơn giản cho mọi trường hợp.Cache LRU và cache TTL
Cache TTL loại bỏ dữ liệu khi thời gian tồn tại được thiết lập đã hết.Cache LRU loại bỏ dữ liệu dựa trên mức độ gần đây của lần sử dụng khi bộ nhớ đầy.Có thể kết hợp hai phương pháp này.Ví dụ, ví có thể dùng LRU để giữ metadata token vừa xem, đồng thời dùng TTL để buộc làm mới sau một khoảng thời gian nhất định.Sự kết hợp này hữu ích trong crypto vì một số dữ liệu được yêu cầu lặp lại nhưng vẫn cần giới hạn thời gian cập nhật.Số dư, giá, ước tính phí gas và trạng thái giao dịch có thể cần giá trị TTL ngắn.Hình ảnh, biểu tượng và mô tả token tĩnh có thể chấp nhận giá trị TTL dài hơn.Lợi ích của cache LRU
Lợi ích đầu tiên của cache LRU là tốc độ.Dữ liệu vừa được truy cập có thể được trả về nhanh hơn so với việc truy xuất lại từ đĩa, node hoặc API từ xa.Lợi ích thứ hai là giảm tải cho cơ sở hạ tầng.Các yêu cầu lặp lại có thể được xử lý từ bộ nhớ thay vì gọi đến các hệ thống backend tốn kém.Lợi ích thứ ba là kiểm soát mức sử dụng bộ nhớ.Cơ chế loại bỏ LRU giúp bộ nhớ đệm không tăng dung lượng vô hạn.Lợi ích thứ tư là tính đơn giản.LRU dễ hiểu và được nhiều công cụ phần mềm hỗ trợ.Lợi ích thứ năm là tính ứng dụng thực tế.Nhiều tác vụ crypto có xu hướng truy cập dữ liệu gần đây rõ rệt, khiến LRU trở thành lựa chọn mặc định hợp lý.Hạn chế của cache LRU
Hạn chế lớn nhất của cache LRU là việc sử dụng gần đây không phải lúc nào cũng đồng nghĩa với giá trị trong tương lai.Một đợt tăng đột biến các yêu cầu chỉ xảy ra một lần có thể đẩy dữ liệu hữu ích ra khỏi bộ nhớ đệm.Hiện tượng này được gọi là cache pollution (nhiễm bẩn bộ nhớ đệm).Một hạn chế khác là dữ liệu lỗi thời.Nếu dữ liệu blockchain hoặc thị trường được lưu đệm mà không làm mới đúng cách, người dùng có thể thấy thông tin đã cũ.Hạn chế thứ ba là chi phí bộ nhớ vì hệ thống phải theo dõi thứ tự truy cập.Hạn chế thứ tư là rủi ro đồng thời, bởi các ứng dụng đa luồng phải bảo vệ trạng thái bộ nhớ đệm khỏi race condition.Hạn chế thứ năm là LRU không phù hợp với mọi vấn đề blockchain, đặc biệt khi giá trị kinh tế, bảo mật hoặc quy tắc đồng thuận quan trọng hơn mức độ gần đây của lần truy cập.Rủi ro bảo mật của cache LRU trong crypto
Cache LRU có thể gây ra vấn đề về bảo mật hoặc độ tin cậy nếu nhà phát triển lưu đệm sai dữ liệu.Không nên lưu đệm dữ liệu nhạy cảm của người dùng trong bộ nhớ dùng chung nếu không có biện pháp kiểm soát truy cập chặt chẽ.Không bao giờ được xem khóa riêng tư, cụm từ khôi phục, mật khẩu ví, thông tin xác thực và thông tin ký là các mục bộ nhớ đệm thông thường.Kết quả xác thực đã lưu đệm cũng có thể gây rủi ro nếu quyền thay đổi nhưng kết quả cũ vẫn còn hiệu lực.Phản hồi RPC được lưu đệm có thể khiến người dùng hiểu sai nếu dữ liệu lỗi thời trong điều kiện thị trường biến động nhanh.Kẻ tấn công cũng có thể tìm cách gây nhiễm bẩn bộ nhớ đệm bằng cách gửi dồn dập các yêu cầu bất thường.Các hệ thống crypto cần thiết kế bộ nhớ đệm có tính đến bảo mật, độ mới, khả năng cách ly và giám sát.Cách nhà phát triển sử dụng cache LRU an toàn
Nhà phát triển chỉ nên lưu đệm dữ liệu có thể tái sử dụng an toàn.Cần đặt giới hạn bộ nhớ rõ ràng để bộ nhớ đệm không tiêu tốn quá nhiều tài nguyên.Cần theo dõi cache hit, cache miss, tỷ lệ loại bỏ, độ trễ và áp lực bộ nhớ.Tài liệu về cơ chế loại bỏ khóa của Redis lưu ý rằng các chỉ số cache hit và cache miss có thể giúp đánh giá hiệu suất bộ nhớ đệm.Nhà phát triển nên sử dụng giá trị TTL cho dữ liệu thay đổi theo thời gian.Không nên lưu đệm thông tin bí mật và dữ liệu ký của người dùng.Khi cần thiết, nên tách không gian tên của bộ nhớ đệm theo người dùng, chain, mạng, hợp đồng và môi trường.Cần kiểm tra hoạt động của bộ nhớ đệm trong điều kiện lưu lượng cao, chain reorganization, lỗi RPC và sự cố backend.Những hiểu lầm phổ biến về cache LRU
Một hiểu lầm phổ biến là cache LRU luôn lưu dữ liệu quan trọng nhất.Trên thực tế, cache này lưu dữ liệu được dùng gần đây nhất, vốn có thể quan trọng hoặc không.Một hiểu lầm khác là bộ nhớ đệm khiến dữ liệu blockchain đáng tin cậy hơn.Bộ nhớ đệm giúp truy xuất dữ liệu nhanh hơn, nhưng không chứng minh dữ liệu đó hợp lệ.Hiểu lầm thứ ba là LRU luôn là chính sách loại bỏ tốt nhất.Một số hệ thống crypto cần chính sách loại bỏ dựa trên phí, tần suất, thời gian hoặc mức độ ưu tiên.Hiểu lầm thứ tư là dữ liệu được lưu đệm luôn mới nhất.Dữ liệu trong bộ nhớ đệm có thể lỗi thời nếu hệ thống không có quy tắc làm mới và vô hiệu hóa phù hợp.Câu hỏi thường gặp
Cache LRU có nghĩa là gì?
Cache LRU là viết tắt của Least Recently Used Cache, tức bộ nhớ đệm loại bỏ mục được truy cập cách đây lâu nhất khi bộ nhớ đệm đầy.Cache LRU có phải là token crypto không?
Không. Cache LRU là phương pháp lưu đệm trong phần mềm, không phải tiền mã hóa hay tài sản blockchain.Vì sao cache LRU hữu ích trong crypto?
Cache này giúp ví, node, trình khám phá blockchain, dịch vụ RPC và indexer trả về dữ liệu blockchain được yêu cầu lặp lại nhanh hơn, đồng thời kiểm soát việc sử dụng bộ nhớ.Cache hit là gì?
Cache hit xảy ra khi dữ liệu được yêu cầu đã có sẵn trong bộ nhớ đệm.Cache miss là gì?
Cache miss xảy ra khi dữ liệu được yêu cầu không có trong bộ nhớ đệm và phải được truy xuất từ một nguồn khác.Cache LRU có thể được dùng cho node blockchain không?
Có. Node blockchain có thể dùng bộ nhớ đệm kiểu LRU cho dữ liệu vừa được truy cập, nhưng bộ nhớ đệm không thay thế việc xác thực theo giao thức.Cache LRU có thể khiến dữ liệu lỗi thời không?
Có. Dữ liệu được lưu đệm có thể lỗi thời nếu ứng dụng không áp dụng quy tắc làm mới, vô hiệu hóa hoặc TTL phù hợp.Cache LRU có phù hợp với dữ liệu DeFi không?
Cache LRU có thể hữu ích với dữ liệu tham chiếu ổn định, nhưng dữ liệu DeFi thay đổi nhanh như giá và tình trạng tài sản thế chấp cần được làm mới cẩn thận.LRU khác LFU như thế nào?
LRU loại bỏ mục ít được sử dụng gần đây nhất, còn LFU loại bỏ mục ít được sử dụng thường xuyên nhất.Có nên lưu khóa riêng tư trong cache LRU không?
Không. Không nên lưu khóa riêng tư, cụm từ khôi phục và thông tin bí mật dùng để ký dưới dạng các mục bộ nhớ đệm thông thường.Kết luận
Cache LRU là phương pháp phần mềm thiết thực giúp giữ dữ liệu vừa được sử dụng luôn sẵn có, đồng thời loại bỏ dữ liệu cũ không còn được dùng khi bộ nhớ có giới hạn.Trong crypto, bộ nhớ đệm LRU có thể cải thiện hiệu suất của node, ví, trình khám phá blockchain, dịch vụ RPC, indexer, ứng dụng NFT, bảng điều khiển DeFi và công cụ giao dịch.Phương pháp này giúp giảm số lần đọc lặp lại từ cơ sở dữ liệu, truy vấn blockchain, lệnh gọi mạng và tình trạng tải dữ liệu chậm.Tuy nhiên, cần thiết kế cache LRU cẩn thận vì hệ thống blockchain thường đòi hỏi dữ liệu mới, chính xác và bảo mật.Số dư lỗi thời, giá cũ, trạng thái giao dịch không cập nhật và quyền truy cập không an toàn được lưu đệm có thể tạo ra rủi ro thực tế cho người dùng.LRU hữu ích khi việc truy cập gần đây là dấu hiệu tốt cho khả năng truy cập trong tương lai, nhưng không phải quy tắc loại bỏ phù hợp với mọi hệ thống crypto.Nhà phát triển nên kết hợp LRU với quy tắc TTL, xác thực, giám sát, kiểm soát truy cập và cơ chế vô hiệu hóa bộ nhớ đệm cẩn thận.Với người dùng crypto, ý chính rất đơn giản.Cache LRU không làm thay đổi blockchain, nhưng khi được triển khai an toàn, cache này có thể giúp ứng dụng blockchain nhanh hơn, giảm chi phí vận hành và dễ sử dụng hơn.Có thể bạn cũng thích
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
HOT
Tiền mã hoá thịnh hành hiện nay đang thu hút sự chú ý đáng kể của thị trường
TOP KL
Tiền mã hoá có khối lượng giao dịch cao nhất
Mới được thêm vào
Tiền mã hoá được niêm yết gần đây có thể giao dịch

