redis là gì

Redis là gì? – Redis (REmote DIctionary Server) là 1 mã mối cung cấp cởi được dùng làm tàng trữ tài liệu với cấu tạo, rất có thể dùng như 1 database, bộ lưu trữ cache hay là 1 message broker.

Nó là khối hệ thống tàng trữ tài liệu với dạng KEY-VALUE rất rất mạnh mẽ và uy lực và phổ cập lúc bấy giờ. Redis nổi trội vị việc tương hỗ nhiều cấu tạo tài liệu cơ bạn dạng như:hash, list, phối, sorted phối, string… Tất cả tài liệu được ghi và lưu bên trên ram, vì thế vận tốc gọi ghi tài liệu cực kì thời gian nhanh.

Bạn đang xem: redis là gì

redis là gì

Các phần mềm của Redis

Sau định nghĩa redis là gì thì tất cả chúng ta hãy tiếp cận phần mềm của Redis ngoài công dụng tàng trữ KEY-VALUE bên trên RAM thì Redis còn tương hỗ công dụng xắp xếp, query, backup tài liệu bên trên đĩa cứng được cho phép bạn cũng có thể bình phục tài liệu khi khối hệ thống bắt gặp sự cố…và rất có thể nhân bạn dạng (Chạy nhiều Server Redis nằm trong lúc).

  • Caching: Sử dụng thực hiện bộ lưu trữ đệm. Chính vận tốc gọi ghi thời gian nhanh tuy nhiên Redis rất có thể thực hiện bộ lưu trữ đệm, điểm share tài liệu trong số những phần mềm hoặc thực hiện database trong thời điểm tạm thời. Trong khi Redis rất có thể dùng nhằm thực hiện Full Page Cache cho tới trang web. Cũng vì thế tính nhất quán của Redis, mặc dù restart Redis thì người tiêu dùng cũng không tồn tại cảm biến lờ lững khi chuyên chở trang.
  • Counter: Sử dụng thực hiện cỗ điểm. Với tính chất tăng hạn chế thông số kỹ thuật rất rất thời gian nhanh trong những khi tài liệu được lưu bên trên RAM, sets và sorted sets được dùng tiến hành điểm lượt view của một trang web, những bảng xếp thứ hạng nhập game chẳng hạng. Redis tương hỗ thread safe vì thế nó rất có thể nhất quán tài liệu trong số những request.
  • Publish/Suscribe (Pub/Sub): Tạo kênh share tài liệu. Redis tương hỗ tạo ra những channel nhằm trao thay đổi tài liệu đằm thắm publisher và subscriber tương tự channel nhập Socket Cluster hay topic trong Apache Kafka. Ví dụ: Pub/Sub được dùng theo gót dõi những liên kết nhập social hoặc những khối hệ thống chat.
  • Queues: Tạo sản phẩm đợi nhằm xử lý theo lần lượt những request. Redis được cho phép tàng trữ theo gót list và cung ứng thật nhiều thao tác với những thành phần nhập list, vậy nên nó còn được dùng như 1 message queue.

Các loại tài liệu nhập Redis

Khác với RDMS như MySQL, hoặc PostgreSQL, Redis không tồn tại table (bảng). Redis tàng trữ data bên dưới dạng key-value. Thực tế thì memcache cũng thực hiện vậy, tuy nhiên loại tài liệu của memcache bị giới hạn, ko đa dạng mẫu mã được như Redis, vì thế ko tương hỗ được rất nhiều thao tác kể từ phía người tiêu dùng. Dưới đấy là sơ lược về những loại tài liệu Redis dùng làm lưu value.

– STRING: string, integer hoặc float. Redis rất có thể thao tác làm việc đối với tất cả string, từng phần của string, hao hao tăng/giảm độ quý hiếm của integer, float.

– LIST: List là 1 list của strings, bố trí theo gót trật tự insert. Redis rất có thể thêm 1 thành phần nhập đầu hoặc cuối list. List tương thích cho những Việc cần thiết thao tác với những thành phần ngay gần đầu và cuối vì thế việc truy xuất này là rất nhanh, mặc dù insert cả triệu thành phần. Tuy nhiên điểm yếu kém là sự truy vấn nhập những thành phần ở đằm thắm list rất rất lờ lững.

– SET: tụ họp những string (không được chuẩn bị xếp). Redis tương hỗ những thao tác thêm thắt, gọi, xóa từng thành phần, đánh giá sự xuất hiện nay của thành phần nhập tụ họp. Trong khi Redis còn tương hỗ những phép tắc toán tụ họp, bao gồm intersect/union/difference.

– HASH: tàng trữ hash table của những cặp key-value, nhập cơ key được bố trí tình cờ, không tuân theo trật tự nào là cả. Redis tương hỗ những thao tác thêm thắt, gọi, xóa từng thành phần, hao hao gọi toàn bộ độ quý hiếm.

SORTED SET (ZSET): là một trong list, nhập cơ từng thành phần là map của một string (member) và 1 floating-point number (score), list được bố trí theo gót score này. Các thành phần của zset được bố trí theo gót trật tự kể từ score nhỏ cho tới rộng lớn.

Ngoài rời khỏi, Redis còn tương hỗ những data types không giống như: Bit arrays, HyperLogLogs, Streams. Để thiết lập các bạn xem thêm docs của Redis nhé.

Để rất có thể vận hành được Redis vị skin trang web những bạn cũng có thể dùng khí cụ phpRedisAdmin: https://github.com/erikdubbelboer/phpRedisAdmin để vận hành những database.

Persistent redis là gì

Bên cạnh việc lưu key-value bên trên bộ lưu trữ RAM, Redis với 2 background threads thường xuyên thực hiện trách nhiệm kế hoạch ghi tài liệu lên đĩa cứng.

Có 2 loại tệp tin được ghi xuống đĩa cứng:

RDB (Redis DataBase file)

RDB tiến hành tạo ra và sao lưu snapshot của DB nhập ổ cứng sau từng khoảng tầm thời hạn chắc chắn.

Ưu điểm

RDB được cho phép người tiêu dùng lưu những version không giống nhau của DB, rất rất thuận tiện khi có trục trặc xẩy ra.

Xem thêm: Cách chơi bài pok deng online đổi thưởng chi tiết

Bằng việc tàng trữ data nhập 1 tệp tin cố định và thắt chặt, người tiêu dùng rất có thể đơn giản và dễ dàng gửi data cho tới những data centers, sever không giống nhau.

RDB gom tối ưu hóa tính năng của Redis. Tiến trình Redis chủ yếu tiếp tục chỉ thực hiện những việc làm bên trên RAM, bao hàm những thao tác cơ bạn dạng được đòi hỏi kể từ phía client như thêm/đọc/xóa, trong những khi cơ 1 tiến thủ trình con cái tiếp tục đảm nhận những thao tác disk I/O. Cách tổ chức triển khai này gom tối nhiều tính năng của Redis.

Khi restart server, sử dụng RDB thao tác làm việc với lượng data rộng lớn sẽ sở hữu vận tốc cao hơn nữa là sử dụng AOF.

Nhược điểm

RDB ko nên là lựa lựa chọn chất lượng nếu như bạn thích thuyên giảm tối nhiều nguy hại tổn thất non tài liệu.

Thông thông thường người tiêu dùng tiếp tục phối up muốn tạo RDB snapshot 5 phút 1 lượt (hoặc nhiều hơn). Do vậy, nhập tình huống có trục trặc, Redis ko thể sinh hoạt, tài liệu trong mỗi phút cuối có khả năng sẽ bị tổn thất.

RDB nhớ dùng fork() muốn tạo tiến thủ trình con cái đáp ứng cho tới thao tác disk I/O. Trong tình huống tài liệu quá rộng, quy trình fork() rất có thể tốn thời hạn và server sẽ không còn thể thỏa mãn nhu cầu được request kể từ client nhập vài ba milisecond hoặc thậm chí còn là một trong second tùy nằm trong nhập lượng data và tính năng CPU.

AOF (Append Only File)

AOF ghi lại toàn bộ những thao tác write tuy nhiên server cảm nhận được, những thao tác này sẽ tiến hành chạy lại khi restart server hoặc tái mét thiết lập dataset thuở đầu.

Ưu điểm

Sử dụng AOF sẽ hỗ trợ đáp ứng dataset được bền vững và kiên cố rộng lớn đối với sử dụng RDB. Người sử dụng rất có thể config nhằm Redis ghi log theo gót từng câu query hoặc từng giây 1 lượt.

Redis ghi log AOF theo phong cách thêm thắt vào thời điểm cuối tệp tin sẵn với, vì thế tiến thủ trình seek bên trên tệp tin đã có sẵn trước là ko quan trọng. Trong khi, bao gồm khi chỉ 1 nửa câu mệnh lệnh được ghi nhập tệp tin log (có thể bởi ổ đĩa bị full), Redis vẫn đang còn chế độ vận hành và thay thế lối cơ (redis-check-aof).

Redis cung ứng tiến thủ trình chạy nền, được cho phép ghi lại tệp tin AOF khi dung tích tệp tin quá rộng.

Trong khi server vẫn tiến hành thao tác bên trên tệp tin cũ, 1 tệp tin trọn vẹn vừa mới được tạo nên với con số ít nhất operation đáp ứng cho tới việc tạo ra dataset thời điểm hiện tại. Và 1 khi tệp tin vừa mới được ghi xong xuôi, Redis tiếp tục gửi lịch sự tiến hành thao tác ghi log bên trên tệp tin mới nhất.

Nhược điểm

File AOF thông thường to hơn tệp tin RDB với nằm trong 1 dataset.

AOF rất có thể lờ lững rộng lớn RDB tùy từng phương pháp thiết lập khoảng tầm thời hạn cho tới việc sao lưu nhập ổ cứng. Tuy nhiên, nếu như thiết lập log 1 giây 1 lượt rất có thể đạt tính năng tương tự với RDB.

Developer của Redis từng bắt gặp nên bug với AOF (mặc cho dù là rất rất hiếm), này đó là lỗi AOF ko thể khởi tạo lại đúng mực dataset khi restart Redis. Lỗi này ko bắt gặp nên khi thao tác làm việc với RDB khi nào.

Xem thêm: dầu hào là gì

Kết luận redis là gì?

Redis là 1 sự lựa lựa chọn ấn tượng khi tao sử dụng một server tàng trữ tài liệu yên cầu tính không ngừng mở rộng cao (scaleable) và share vị nhiều tiến thủ trình, nhiều phần mềm và nhiều server không giống nhau.

Có thể bạn thích coi thêm:

  • Server side cache with Go
  • Tuyệt kỹ: Sử dụng cache nhằm bức tốc hệ thống
  • Cấu hình Redis Caching nhằm bức tốc site WordPress của bạn

Xem thêm thắt tuyển chọn dụng it lương lậu cao tại TopDev