THẢO LUẬN

thg 6 27, 3:32 SA

@Huyennv phải có yêu cầu đặc biệt thì mới phải làm căng thế. BT các hệ thống cũng chỉ persist xuống db nào đấy rồi cache lại thôi. Wordpress chẳng hạn. Hoặc youtube.

Dễ thấy nhất là view của youtube thường bị cache. Nó có mâu thuẫn thế này:

  1. trang ít view, con số view nhỏ thì việc cập nhật số view thường xuyên có vẻ được để ý.
  2. trang nhiều view, con số chính xác là không quan trọng, thường người ta hiển thị con số rút ngắn như 12K, 12M. Một con số chi tiết kiểu 12.345 là không ý nghĩa hơn 12K.

Việc kiểm soát số view theo thời gian thực có thể ví dụ trong ecommerce. Khi muốn sale sản phẩm, muốn show số người xem theo thời gian thực để thúc đẩy khách hàng. Ngoài push notification để update số view, khách cũng thường refresh trang liên tục. Thực tế thì có lẽ push notification là cũng đủ hiệu quả. Con số view chỉ là tương đối.

Cần làm rõ 2 vấn đề trong câu hỏi của bạn:

  1. Redis không phải là DB duy nhất trong hệ thống, vẫn cần 1 db để lưu giữ số view lâu dài.
  2. Clear Redis không phải xóa số view của trang. Hệ thống sẽ tải lại số view từ DB dài hạn (persistence storage, db sơ cấp).

Có 3 cách sử dụng Redis:

  1. Đơn thuần là Cache. Khi có lượt view, hệ thống tăng số trong db dài hạn (db sơ cấp). Khi query, hệ thống lấy từ Redis (cache), không có sẽ query DB sơ cấp.
  2. Chạy song song Redis và DB sơ cấp. Khi có lượt view, hệ thống increase số view cả Redis lẫn db sơ cấp. Khi Redis reset, load lại dữ liệu view này từ DB theo 2 cách:
  • On demand, query đến đâu load từ db sơ cấp đến đó.
  • Fetch-all - load tất cả từ db bằng Job hoặc trigger.
  1. Cập nhật Redis trước, định kì cập nhật lại db sơ cấp. Khi có request, increase Redis count. Job chạy update lại db sau. Khi redis reset thì fetch-all từ db sơ cấp.

Kết luận:

  • Chưa tìm ra ứng dụng thực tế của việc lưu số view vào Redis. Số view chỉ là con số tương đối, không cần sử dụng kĩ thuật phức tạp để xử lý.
0
thg 6 27, 3:26 SA

Bài hay

0
thg 6 27, 3:15 SA
  1. Trong js, mở một ngoặc nhọn là tạo một scope, nên ko chỉ catch, sau cái ngoặc nhọ nào cũng thế. Mở 1 cái ngoặc nhọn không liên quan cũng cho kết quả tương tự.
const x = 'out';

{
  const x = 'in';

  console.log(x);
}

console.log(x);
+2
thg 6 27, 2:37 SA

Mình có 1 câu hỏi là làm sao qua mặt được việc phát hiện xài Fake GPS 😄

0
thg 6 26, 5:49 CH

sao chép y nguyên

0

Public nhầm bản nháp à bạn? image.png

0
thg 6 26, 3:30 CH

Cám ơn bạn nhiều nhé. Nhưng mà giả dụ leader của mình vẫn yêu cầu lưu vào redis, thì khi nào mình nên clear cho cái phần trước đó mình lưu(key: id bài viết, value : lượt view) nhỉ. vẫn câu hỏi cũ, trường hợp common nhất thì các hệ thống đang xử lý case này như nào nhỉ, 😃 😄 bạn có thể lấy ví dụ giúp mình được không

0
thg 6 26, 3:16 CH

@Huyennv Thực tế thì cũng ko cần redis. Lưu sql cũng đc. Việc đếm lượt ko quá nặng và thường thì sql cũng đủ gánh. Lượt view thường cũng ko phải realtime nên sql cũng không chiu tải nhiều (cache được thời gian dài). Dùng Redis thì vẫn cần phải lưu lại lượt view vào đâu đó lâu dài, như chạy job cuối ngày lưu lại vào sql chẳng hạn.

Theo mình thì lưu sql và cache in memory cũng ok rồi (số lượng bài viết thường không nhiều, đặc biệt bài viết active đang có nhiều người đọc). Đơn giản, tin cậy.

Cũng chưa thấy ai reset lượt view sau 30 ngày, trừ game 😄. Kể cả 30 ngày thì vẫn cần lưu dài hạn. Redis không đủ tin cậy để làm việc đó.

Trong trường hợp là monitoring hay telemetry thì có nhiều tool sẵn có, không chỉ đếm mà còn log luôn.

0

@refacore 😅 Quá chuẩn! Thông thường các "hacker đỉnh của chóp" sẽ kết hợp nhiều chiêu thức tấn công DDoS, tạo ra một "combo đa sát thương" cực kỳ phức tạp và đa vector. Ping flood cũng là một mảnh ghép trong bức tranh tấn công đó.

Theo ý kiến cá nhân mình thì:

Rõ ràng các hacker sẽ "múa may quay cuồng" với đủ loại chiêu thức để tối ưu hóa cuộc tấn công. Và Hacker thì cũng có hacker "this" hacker "that", web thì cũng có web "Nhà Giàu" web "Nhà Nghèo"... Mạng botnet thì cũng đa dạng từ "đội quân tí hon" vài nghìn bot đến "đại quân" hàng triệu bot như botnet Mariposa (2008) với hơn 12 triệu bot. Vì vậy, nếu một hacker "tay mơ" chỉ có vài ngàn bot và chỉ dùng mỗi chiêu Ping flood, với các gói tin ICMP có thể lên đến 65,507 byte ≈ 0.0625 Mb trong lý thuyết (nhưng thực tế qua mạng Ethernet với MTU thì chỉ khoảng 1500 byte ≈ 0.0015 Mb), thì việc không đánh sập được một trang web là hoàn toàn có thể. Nhưng câu hỏi đặt ra là: liệu có đáng để làm vậy không?

Có câu nói vui rằng: "Bạn không bị lừa không phải vì bạn quá thông minh, mà vì người ta chưa thèm lừa bạn". Không liên quan lắm nhưng mà các bạn thấy đó, thời sự VTV ngày nào cũng chiếu những vụ lừa đảo "khủng" hàng chục tỷ trong ngân hàng (rõ ràng những nạn nhân này không hề ngốc... ai mà kiếm được trên một tỷ đều phải "trầy vi tróc vảy" cả. Anh em cứ thử tự làm ra 500tr->1tỷ xem, đảm bảo "não ông nào cũng chứa toàn cục sạn to chà bá" ngay). Thế mà vẫn mất.... Cá lớn thì mồi thơm thôi 😄

Cuối cùng, 🤣 Như mình đã nói ở trên, "rate limiting" tuy không phải là "thuốc chữa DDoS" nhưng vẫn có thể là một kỹ thuật nhỏ, và có lẽ nó sẽ có ích trong một số trường hợp nhất định.

0
thg 6 26, 2:05 CH

Bạn cho mình hỏi trường hợp mình sử dụng redis để quản lý số lượng view.

Cụ thể là nếu yêu cầu của mình là mỗi khi người dùng vào một bài viết nào đó và muốn xem lượt view là bao nhiêu ?

  1. Trong redis mình sẽ không bao h clear nó đi đúng không ạ,

  2. Mình đang nghĩ là mình sẽ tính toán xem cái bài viết đó ví dụ 30 ngày sau không được user (người mà đăng bài ) xem lại thì mình sẽ clear cache đi

Thường thì các dự án họ đang làm như nào bạn nhỉ?

0

@Clarence161095 DDoS cũng đâu cứ phải dùng http. Nó ping không cũng tèo mà ^^

+1

Tùy chương trình đào tạo ra là kĩ sư hay cử nhân thôi. Nên việc bạn tốt nghiệp cử nhân hay kỹ sư thì không khác biệt quá nhiều. Quan trọng trong quá trình học thì em học được những gì, làm được những gì, tích lũy kinh nghiệm để ra trường kiếm được việc làm.

0

Xin cảm ơn, tôi đã cài harbor thành công

0

chúc bạn tìm ra con đường cho riêng mình, 😊

0

Bài viết hay quá. Mình bằng tuổi bạn, cũng k58 BK, nhưng cuộc đời bị trật vài nhịp. Mình đang làm thuần FE, đang muốn phát triển kỹ năng thêm. Mình đã đọc hết bài viết, như cơn mưa rào giải hạn. Cảm ơn những chia sẻ của bạn nha

0

bai viet rat tuyet

0

👍️

0
thg 6 26, 2:13 SA

series này không tiếp tục nữa à b :<

0

Hiện tại có rất nhiều giải pháp, nhưng mình đang dùng Sider AI và thấy khá hài lòng. Bạn có thể tương tác trực tiếp với AI và đặt các câu hỏi về nội dung của trang web luôn (mình ví dụ như hình bên dưới)

image.png

Hi vọng nó giúp được bạn

0
thg 6 26, 1:21 SA

một bài chi tiết cho vấn đề mà có thể nhiều người sẽ ko để ý tới, quá hay

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí