Snippets

Tập hợp các đoạn code ngắn, dùng lại được mà mình hay cần đến.

Redis distributed lock (acquire)

Giành khóa nguyên tử với token duy nhất và tự hết hạn để tránh deadlock.

bash
# NX = set only if absent, PX = expiry in ms
SET lock:order:42 "$RANDOM_TOKEN" NX PX 30000

Redis safe unlock (Lua, compare-and-delete)

Chỉ nhả khóa nếu vẫn đang sở hữu — tránh xóa nhầm khóa của người khác.

lua
if redis.call("get", KEYS[1]) == ARGV[1] then
  return redis.call("del", KEYS[1])
else
  return 0
end

Bảng tra cứu cron expression

Năm trường lần lượt là: phút, giờ, ngày trong tháng, tháng, thứ trong tuần.

text
*   *   *   *   *    every minute
0   *   *   *   *    every hour
0   0   *   *   *    every day at 00:00
0   9   *   *   1-5  weekdays at 09:00
0   0   1   *   *    first day of every month

COUNT(*) và COUNT(1)

Với trình tối ưu chúng giống hệt nhau. Nên dùng COUNT(*) — đó là cách viết chuẩn.

sql
-- same plan, same performance
SELECT COUNT(*) FROM orders WHERE status = 'paid';

Upsert idempotent (PostgreSQL)

Chèn hoặc cập nhật khi trùng — chạy lại an toàn mà không tạo bản ghi trùng.

sql
INSERT INTO accounts (id, balance)
VALUES ($1, $2)
ON CONFLICT (id) DO UPDATE
  SET balance = EXCLUDED.balance;

Graceful shutdown (Spring Boot)

Để các request đang xử lý hoàn tất trước khi tiến trình thoát.

properties
server.shutdown=graceful
spring.lifecycle.timeout-per-shutdown-phase=30s