MEMCACHED VÀ REDIS LÀ GÌ

Sự Thành lập của RedisCâu chuyện ban đầu Lúc tác giả của Redis, Salvatore Sanfilippo(nickname: antirez), cố gắng có tác dụng phần nhiều các bước gần như là khôngthể với Squốc lộ Database!Server của antirez thừa nhận 1 lạng phệ báo cáo từ khá nhiều trang webkhác nhau thông qua JavaScript tracker, tàng trữ n page view chotrừng trang cùng hiển thị chúng theo thời gian thực cho user, kèm theochính là lưu trữ 1 lượng nhỏ lịch sử vẻ vang hiển thị của website. khi sốlượng page view tăng cho hàng trăm page trên 1 giây, antirezbắt buộc tìm thấy giải pháp tiếp cận nào thực sự buổi tối ưu mang lại Việc thiết kếdatabase của chính mình. Tuy nhiên, anh ta phân biệt rằng, câu hỏi lưu trữ 1danh sách bị giới hạn các phiên bản ghi không hẳn là sự việc vượt khókhăn uống. Từ kia, ý tưởng phát minh tàng trữ thông tin bên trên RAM và quản lý cácpage views dưới dạng native sầu data với thời gian pop với push là hằngsố được ra đời. Antirez hợp tác vào vấn đề thiết kế prototype bằng C,bổ sung cập nhật tuấn kiệt lưu trữ đọc tin bên trên đĩa cứng và… Redis Thành lập.Redis là gì?Ngày nay, quan niệm NoSquốc lộ trnghỉ ngơi nên quen thuộc vào giới CôngNghệ Thông Tin (CNTT). Đi kèm cùng với kia là sự việc thành lập của hàng loạt hệquản ngại trị đại lý dữ liệu (DBMS) cải tiến và phát triển dựa vào tính chất của NoSQL:Non-relational (không quan tiền hệ), Distributed (phân tán), Open-source(mã nguồn mở), Horizontally scalable (dễ dãi mở rộng theo chiềungang).Redis là cơ sở tài liệu sở hữu phong cách NoSQL, tàng trữ tài liệu vớidạng KEY-VALUE với tương đối nhiều nhân kiệt được thực hiện rộng rãi. Nó cóthể hỗ trợ nhiều kiểu tài liệu như: strings, hashes, lists, sets, sorted.Đồng thời rất có thể có thể chấp nhận được scripting bởi ngôn từ Lua.NoSquốc lộ là một khái niệm chỉ về một lớp các hệ đại lý tài liệu ko thực hiện quy mô tình dục (RDBMS).RDBMS vốn trường tồn không hề ít điểm yếu kém nlỗi có hiệu năng không giỏi giả dụ kết nối tài liệu nhiều bảng lạixuất xắc khi dữ liệu vào một bảng là rất lớn.Thuật ngữ NoSquốc lộ ghi lại bước cải cách và phát triển của cố hệ CSDL mới: phân tán (distributed) + không ràngbuộc (non-relational).Đặc chưng cơ phiên bản của Redis

1. Data model

Khác cùng với RDMS nhỏng MySquốc lộ, xuất xắc PostgreSQL, Redis không có bảng. Redis lưu trữ data dướidạng key-value. Thực tế thì memcabít cũng làm vậy, nhưng vẻ bên ngoài tài liệu của memcađậy bị hạnchế, không phong phú và đa dạng được như Redis, cho nên vì vậy ko cung ứng được nhiều thao tác tự phía người tiêu dùng.Dưới đó là qua loa về các hình dạng tài liệu Redis dùng làm giữ value.

Bạn đang xem: Memcached Và Redis Là Gì

STRING: Có thể là string, integer hoặc float. Redis có thể thao tác với tất cả string, từng phần củastring, cũng như tăng/Giảm ngay trị của integer, float.

LIST: Danh sách liên kết của các strings. Redis cung cấp những làm việc push, pop từ cả hai phía của list,trlặng dựa trên offset, hiểu 1 hoặc những items của menu, kiếm tìm tìm và xóa cực hiếm.

SET Tập thích hợp những string (ko được sắp tới xếp). Redis cung ứng những thao tác làm việc thêm, đọc, xóa từng phầntử, đánh giá sự lộ diện của bộ phận vào tập thích hợp. Bên cạnh đó Redis còn cung cấp các phnghiền toán tậphợp, bao gồm intersect/union/difference.

HASH: Lưu trữ hash table của các cặp key-value, trong những số ấy key được bố trí bất chợt, khôngtheo lắp thêm từ làm sao cả. Redis cung cấp các thao tác làm việc thêm, gọi, xóa từng bộ phận, cũng giống như hiểu tất cả giátrị.

ZSET (sorted set): Là 1 danh sách, trong đó mỗi phần tử là bản đồ của 1 string (member) và 1floating-point number (score), list được thu xếp theo score này. Redis cung ứng thao tác thêm,gọi, xóa từng bộ phận, lôi ra các thành phần dựa theo range của score hoặc của string.

Lưu ý nhỏ:

Trang website ktmt.github.io đưa ra loạt bài bác phân tích về source code Redis (viết bằngC), trong những số đó tất cả một trong những phần về hình trạng dữ liệu của Redis. Tham mê khảo các nội dung bài viết kia,chúng ta có thể thấy Redis sử dụng 1 layer biểu đạt tài liệu tại mức độ abstract, làredisObjectr-robj (định nghĩa vào redis.h), các thao tác cơ bạn dạng của db (db.c) đềuthao tác trực tiếp cùng với robj và không cần biết đến sự mãi mãi của các hình dáng string, các mục,hash, phối, zphối. Sơ đồ gia dụng tổ chức hoàn toàn có thể tìm hiểu thêm trong quy mô tiếp sau đây.

*

Thiết kế này giúp thao tác làm việc thao tác làm việc cùng với những hình trạng dữ liệu không giống nhau trngơi nghỉ đề nghị dễ ợt quảnlý rộng, bên cạnh đó hỗ trợ bài toán bức tốc số lượng hình dạng dữ liệu trong tương lai

2. Master/Slave sầu Replication

Đây chưa phải là đặc trưng vượt rất nổi bật, các DBMS khác đều có tài năng này, tuynhiên chúng ta nêu ra tại đây nhằm thông báo rằng, Redis không kém cạnh các DBMS về tìnhnăng Replication.

Xem thêm: Vì Sao Kính Cường Lực Tự Vỡ Và Cách Khắc Phục, Nguyên Nhân Kính Cường Lực Tự Vỡ Hoặc Nứt

*

3. In-memory

Không nlỗi những DBMS khác lưu trữ tài liệu trên đĩa cứng, Redis lưu trữ tài liệu trênRAM, cùng tất nhiên là thao tác đọc/ghi trên RAM. Với người làm cho CNTT bình thường,ai ai cũng phát âm thao tác làm việc trên RAM nhanh hơn nhiều so với trên ổ cứng, tuy thế chắc chắnhọ sẽ sở hữu được cùng câu hỏi: Điều gì xảy ra cùng với data của chúng ta Lúc hệ thống bị tắt?

Rõ ràng là cục bộ tài liệu trên RAM có khả năng sẽ bị mất lúc tắt VPS, vậy làm cụ làm sao nhằm Redisbảo toàn data cùng vẫn gia hạn được ưu nuốm xử lý tài liệu bên trên RAM. Chúng ta vẫn thuộc tìmgọi về nguyên tắc lưu giữ tài liệu bên trên ổ cứng của Redis trong phần tiếp theo của nội dung bài viết.

4. Persistent redis

Dù làm việc cùng với data dạng key-value tàng trữ bên trên RAM, Redis vẫn bắt buộc tàng trữ dữ liệu trên ổ cứng. một là để đảm bảo an toàn toàn diện dữliệu lúc gồm sự nạm xảy ra (hệ thống bị tắt nguồn) cũng tương tự tái tạo lại dataset khi restart VPS, 2 là để gửi data mang đến những slave hệ thống, phụcvụ cho khả năng replication. Redis cung cấp 2 thủ tục chính cho bài toán sao lưu lại tài liệu ra ổ cứng, đó là RDB và AOF.RDB (Redis DataBase file)

Cách thức có tác dụng việc

RDB tiến hành sản xuất và sao lưu giữ snapshot của DB vào ổ cứng sau mỗi khoảng thời hạn nhất định.

Ưu điểm

RDB chất nhận được người dùng lưu những version khác nhau của DB, cực kỳ tiện lợi Lúc gồm sự vắt xảy ra.Bằng bài toán lưu trữ data vào 1 file cố định và thắt chặt, người tiêu dùng có thể dễ dãi đưa data đến những data centers khác nhau, hoặc đưa mang lại giữ trữbên trên Amazon S3.RDB góp về tối ưu hóa tính năng của Redis. Tiến trình Redis thiết yếu sẽ chỉ có tác dụng các quá trình bên trên RAM, bao gồm các thao tác cơ bản được yêucầu từ phía client nhỏng thêm/đọc/xóa, trong những khi đó 1 quy trình bé đã phụ trách những thao tác disk I/O. Cách tổ chức này góp tối nhiều hiệu năngcủa Redis.khi restart server, cần sử dụng RDB thao tác làm việc cùng với lượng data lớn sẽ có được tốc độ cao hơn nữa là cần sử dụng AOF.

Nhược điểm

RDB không phải là tuyển lựa xuất sắc nếu như bạn muốn giảm tgọi về tối nhiều nguy cơ tiềm ẩn mất đuối dữ liệu. thường thì người tiêu dùng đang mix up nhằm chế tác RDBsnapshot 5 phút 1 lần (hoặc những hơn). Do vậy, vào ngôi trường thích hợp bao gồm sự rứa, Redis cấp thiết chuyển động, dữ liệu trong số những phút cuối sẽ bịmất.RDB yêu cầu sử dụng fork() nhằm tạo thành quá trình bé giao hàng mang đến thao tác disk I/O. Trong ngôi trường vừa lòng tài liệu quá lớn, quá trình fork() có thể tốn thờigian cùng server sẽ không còn thể đáp ứng nhu cầu được request trường đoản cú client trong vài ba milisecond hoặc thậm chí còn là 1 trong những second tùy nằm trong vào lượng data với hiệunăng CPU.

*

Nlỗi minc họa làm việc trên, trong trường hòa hợp không có phiên bản sao của tập tài liệu còn lại trong RAM, RedisEnterprise sẽ tìm kiếm bản sao sau cùng của tập tài liệu trong các sản phẩm được liên kết mạng được kết nốivới nút ít không thành công với thực hiện nó nhằm điền phân đoạn Redis bên trên phiên phiên bản đám mây bắt đầu.

AOF (Appover Only File)

Cách thức có tác dụng việc:

AOF cất giữ tất cả những thao tác write mà hệ thống nhận ra, các thao tác làm việc này sẽ được chạy lại Lúc restart hệ thống hoặc tái thiết lập cấu hình dataset thuở đầu.

Ưu điểm

Sử dụng AOF sẽ giúp đỡ bảo đảm an toàn dataphối được bền chắc hơn đối với dùng RDB. Người dùng rất có thể config nhằm Redis ghi log theo từng câu query hoặc từng giây 1 lần.Redis ghi log AOF theo kiểu thêm vào thời gian cuối tệp tin sẵn tất cả, cho nên vì thế quá trình seek bên trên tệp tin có sẵn là không quan trọng. Ngoài ra, của cả lúc chỉ 1 nửa câu lệnh được ghi trong file log(có thể do ổ đĩa bị full), Redis vẫn đang còn nguyên lý làm chủ cùng thay thế sửa chữa lối kia (redis-check-aof).Redis cung ứng tiến trình chạy nền, có thể chấp nhận được khắc ghi tệp tin AOF Khi dung tích tệp tin quá lớn. Trong Khi hệ thống vẫn thực hiện thao tác làm việc trên file cũ, 1 tệp tin hoàn toàn mới được tạo thành racùng với con số buổi tối tđọc operation Ship hàng đến việc sinh sản datamix hiện nay. Và 1 lúc tệp tin mới được ghi dứt, Redis đang chuyển sang thực hiện làm việc ghi log trên tệp tin new.

Nhược điểm

File AOF hay to hơn file RDB với cùng 1 dataset.AOF có thể lờ đờ rộng RDB phụ thuộc vào phương thức tùy chỉnh cấu hình khoảng thời hạn mang lại bài toán sao giữ vào ổ cứng. Tuy nhiên, giả dụ thiết lập log 1 giây 1 lần rất có thể đạt hiệu năng tươngđương với RDB.Developer của Redis đã có lần gặp mặt buộc phải bug cùng với AOF (mang mặc dù là khôn cùng hiếm), chính là lỗi AOF tất yêu tái sản xuất lại chính xác dataphối lúc restart Redis. Lỗi này không chạm mặt đề xuất khithao tác với RDB khi nào.Câu hỏi đặt ra là, bọn họ cần cần sử dụng RDB xuất xắc AOF? Mỗi thủ tục đều phải có ưu/nhược điểm riêng biệt, và có lẽ rằng cần nhiều thời gian thao tác làm việc với Redis cũng như phụ thuộc vào ứngdụng cơ mà đưa ra lựa chọn tương thích. phần lớn người lựa chọn AOF bới nó đảm bảo an toàn toàn vẹn tài liệu tốt nhất, nhưng mà Redis developer lại khuyến cáo cần dùng cả RDB, bởi vì nó siêu thuậnnhân tiện đến việc backup database, tăng tốc độ mang lại quy trình restart tương tự như tránh được bug của AOF.Cũng buộc phải xem xét thêm rằng, Redis được cho phép ko áp dụng hào kiệt tàng trữ công bố trong ổ cứng (ko RDB, ko AOF), mặt khác cũng cho phép cần sử dụng cả 2 tính năngnày bên trên thuộc 1 instance. Tuy nhiên Lúc restart hệ thống, Redis sẽ dùng AOF mang đến vấn đề tái tạo nên dataset lúc đầu, bươi AOF đang bảo đảm an toàn vẫn tồn tại mát dữ liệu giỏi rộng là RDB.

5. Redis vs Memcached

Số lượng clients tăng thì vận tốc của Redis trầm trồ nhanh hao hơn

Leave a Reply

Your email address will not be published. Required fields are marked *

x

Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.