Chiến lược Debouncing trong Java
Debouncing trong nghiệp vụ (chỉ thực hiện lần gọi cuối cùng):
Khi một sự kiện được kích hoạt, hệ thống sẽ trì hoãn việc thực thi callback trong n giây. Nếu trong khoảng thời gian n giây đó sự kiện bị kích hoạt lại, bộ đếm sẽ được thiết lập lại.
Tác dụng
Đối với các sự kiện xảy ra liên tục, trong một khoảng thời gian nhất định, chỉ phản hồi lần ...
Đăng vào ngày 14 tháng 6 lúc 00:39
Hướng dẫn lập trình Python 2.7 cơ bản và thực hành
1. Chạy và gỡ lỗi chương trình Python
1.1 Tham số dòng lệnh
Khi thực thi từ terminal:
python script.py arg1 arg2 arg3
sys.argv là danh sách chứa tất cả tham số truyền vào.
len(sys.argv) trả về tổng số tham số (bao gồm tên file).
1.2 Gỡ lỗi tương tác với pdb
Chèn điểm ngắt tại vị trí cần kiểm tra:
import pdb
pdb.set_trace() # Dừng tại ...
Đăng vào ngày 12 tháng 6 lúc 04:48
Giới thiệu JWT
Trong bài viết này, chúng ta sẽ tìm hiểu về cách sử dụng JWT (JSON Web Token) trong một ứng dụng Spring Boot.
1. Cơ bản về JWT
JWT là một tiêu chuẩn mở cho phép trao đổi thông tin an toàn giữa các hệ thống. Mỗi token JWT bao gồm ba phần được phân cách bởi dấu chấm (.):
Header: chứa thông tin về loại token và thuật toán ký
Payload: ch ...
Đăng vào ngày 10 tháng 6 lúc 01:01
Redis Phân tán: Khóa phân tán và Kiến trúc cụm
Trong phần trước, chúng ta đã khái quát các khía cạnh nền tảng của Redis — từ bối cảnh ứng dụng, cơ chế I/O đa路 (multiplexing), cấu trúc dữ liệu cốt lõi đến các chiến lược lưu trữ bền vững. Phần này sẽ đi sâu vào hai chủ đề thực tiễn quan trọng trong kiến trúc hệ thống hiện đại: khóa phân tán và cụm Redis (Redis Cluster), thông qua một tình h ...
Đăng vào ngày 9 tháng 6 lúc 22:44
Thiết kế và Xây dựng Hệ thống Giao tiếp Cộng đồng Dựa trên Vue và SpringBoot
Lựa chọn Công nghệ và Thiết kế Kiến trúc
Hệ thống sử dụng kiến trúc tách biệt giữa frontend và backend. Phía frontend được xây dựng bằng Vue.js kết hợp Element UI để tạo giao diện đáp ứng, trong khi phía backend sử dụng SpringBoot 2.7.x với MyBatis-Plus để triển khai RESTful API. Cơ sở dữ liệu sử dụng MySQL 8.0, bộ nhớ đệm sử dụng Redis, và lư ...
Đăng vào ngày 9 tháng 6 lúc 21:09
Tích hợp Redis cho Quản lý Phiên và Khóa Phân tán trong .NET Core
Redis được sử dụng để quản lý phiên đăng nhập (ví dụ: hết hạn sau 20 phút) và giải quyết vấn đề tranh chấp tài nguyên trong các hệ thống phân tán như e-commerce. Redis hoạt động hiệu quả nhờ cơ chế đơn luồng I/O đa kênh.
Xử lý tranh chấp tài nguyên
Trong môi trường đa luồng, việc truy cập đồng thời vào tài nguyên dùng chung có thể gây ra xung ...
Đăng vào ngày 8 tháng 6 lúc 02:51
Triển Khóa Phân Tán Dựa Trên Redis
Phương Pháp 1: Sử Dụng Thư Viện Redisson
1. Cài Đặt Redis
Để sử dụng dịch vụ khóa của Redisson, phiên bản Redis của bạn phải cao hơn 2.6. Tham khảo hướng dẫn cài đặt Redis để biết thêm chi tiết.
2. Thêm Thư Viện Redisson
Thêm dependency Redisson vào file pom.xml:
<dependency>
<groupId>org.redisson</groupId>
<ar ...
Đăng vào ngày 7 tháng 6 lúc 19:29
Sự khác biệt giữa sync() và syncAndReturnAll() trong ShardedJedisPipeline
Giải thích từ tài liệu chính thức
Đồng bộ hóa pipeline bằng cách đọc tất cả các phản hồi. Hoạt động này sẽ đóng pipeline. Để lấy giá trị trả về từ các lệnh pipeline, hãy bắt các đối tượng Response khác nhau đã thực thi.
Đồng bộ hóa pipeline bằng cách đọc tất cả các phản hồi. Hoạt động này sẽ đóng pipeline. Cố gắng tránh sử dụng phiên bản này và ...
Đăng vào ngày 7 tháng 6 lúc 04:00
Triển Khai Redis Cluster High Availability với Docker Compose
Để đạt được tính sẵn sàng cao và khả năng mở rộng trong Redis, chế độ cụm (Redis Cluster) là một lựa chọn lý tưởng. Tuy nhiên, việc thiết lập một cụm Redis yêu cầu tuân thủ các quy tắc về số lượng nút tối thiểu. Cụ thể, Redis Cluster cần ít nhất 3 nút master để hoạt động ổn định. Để đảm bảo khả năng chịu lỗi, mỗi master thường đi kèm với một ho ...
Đăng vào ngày 6 tháng 6 lúc 03:38
Cây tiền tố trong Redis: Từ Trie đến Rax Tree
Các cấu trúc như trie, radix tree và rax tree đều là những biến thể của cây tiền tố (prefix tree), được thiết kế để tối ưu hóa hiệu suất truy vấn và tiết kiệm bộ nhớ theo từng giai đoạn phát triển.
Trie truyền thống
Mỗi nút trong trie chỉ lưu một ký tự duy nhất, toàn bộ khóa được tạo thành bởi chuỗi đường đi từ gốc đến lá. Độ phức tạp tìm kiếm ...
Đăng vào ngày 4 tháng 6 lúc 18:11