1. Trang chủ
  2. » Công Nghệ Thông Tin

Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server

22 141 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 612,64 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT THÔNG TIN ĐỒ ÁN MÔN HỌC QUẢN LÍ THÔNG TIN ĐỀ TÀI Tìm hiểu về hệ quản trị Redis và so sánh điểm khác biệt so với hệ quản trị SQL Server LỚP IE103 M21 CNCL GVHD TS LƯU THANH SƠN TS NGUYỄN GIA TUẤN ANH IE103 Quản lý thông tin Trang 1 MỤC LỤC MỤC LỤC 1 DANH SÁCH BẢNG BIỂU, HÌNH VẼ 2 CHƯƠNG 1 – TỔNG QUAN VỀ REDIS 3 1 1 Hệ quản trị cơ sở dữ liệu redis 3 1 2 Kiến trúc của Redis 5 1 3 Toàn vẹ.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT THÔNG TIN

TS NGUYỄN GIA TUẤN ANH SVTH: LƯU TẤN HƯNG - MSSV: 20521364

NGUYỄN THANH HIẾU - MSSV: 20521328

Trang 2

Trang 1

MỤC LỤC

MỤC LỤC 1

DANH SÁCH BẢNG BIỂU, HÌNH VẼ 2

CHƯƠNG 1 – TỔNG QUAN VỀ REDIS 3

1.1 Hệ quản trị cơ sở dữ liệu redis 3

1.2 Kiến trúc của Redis 5

1.3 Toàn vẹn dữ liệu 5

1.4 Khả năng đáp ứng cao và mở rộng 8

1.5 Ưu và nhược điểm của Redis 11

1.6 Ứng dụng của Redis 13

Chương 2 – Redis vs Microsoft SQL Server 14

2.1 Sơ lược về hệ quản trị cơ sở dữ liệu Microsoft SQL Server 14

2.2 So sánh Redis với Microsoft SQL Server 15

Tài liệu tham khảo 20

Trang 3

Trang 2

DANH SÁCH BẢNG BIỂU, HÌNH VẼ

Hình 1.1 Logo của hệ quản trị CSDL Redis……… 3

Hình 1.2 Kiến trúc của Redis……… 5

Hình 1.3 Cơ chế sao chép cơ sở dữ liệu……… 9

Hình 1.4 Cơ chế sentinel……… 10

Hình 1.5 Cơ chế cluster……… 11

Hình 2.1 Logo của hệ quản trị CSDL Microsoft SQL Server……… 14

Bảng 1 Thời gian thực hiện truy vấn Select……… 16

Bảng 2 Thời gian thực hiện truy vấn Insert……… 17

Bảng 3 Thời gian thực hiện truy vấn Delete……… 17

Bảng 4 Thời gian thực hiện truy vấn Update……… 18

Trang 4

Ưu điểm của dạng khóa - giá trị là truy xuất, tìm kiếm rất nhanh Nhược điểm là lưu dữ liệu không theo mẫu (schema) nhất định Thường dùng làm bộ nhớ đệm cho nội dung giúp truy xuất nhanh hơn Dữ liệu có thể lưu trữ dưới các dạng: Strings, Lists, Hashes, Sets, Sorted Sets, được lưu trữ dữ liệu trên RAM để tối ưu hóa thời gian truy xuất, hỗ trợ lưu xuống đĩa cứng, hỗ trợ phân tán

1.1.2 Lịch sử ra đời

Hình 1.1 Logo redis

Tên Redis có nghĩa là Máy chủ Từ điển Từ xa Dự án Redis bắt đầu khi Salvatore Sanfilippo, nhà phát triển ban đầu của Redis Sau khi

Trang 5

Trang 4

gặp phải các vấn đề đáng kể trong việc mở rộng một số loại khối lượng công việc bằng cách sử dụng các hệ thống cơ sở dữ liệu truyền thống, Sanfilippo bắt đầu tạo mẫu thử nghiệm phiên bản khái niệm đầu tiên của Redis trong TCL Sau đó, Sanfilippo đã dịch nguyên mẫu đó sang ngôn ngữ C và triển khai kiểu dữ liệu đầu tiên, danh sách Sau một vài tuần sử dụng dự án trong nội bộ với thành công, Sanfilippo đã quyết định mở mã nguồn của nó, thông báo về dự án trên Hacker News Dự

án bắt đầu nhận được sức hút, đặc biệt là trong cộng đồng Ruby,

với GitHub và Instagram là một trong những công ty đầu tiên áp dụng

1.1.2 Định nghĩa In-memory database

 Không như các DBMS khác lưu trữ dữ liệu trên đĩa cứng, Redis lưu trữ dữ liệu trên RAM và thao tác đọc/ghi trên RAM nhanh hơn nhiều so với trên ổ cứng

 Tuy nhiên, khi lưu trữ trên RAM thì nhanh thật nhưng lại gặp 1 vấn đề là bị mất điện thì dữ liệu cũng mất tiêu Để ngăn chặn việc mất dữ liệu xảy ra, có một mô-đun được tích hợp sẵn để ghi trạng thái trong bộ nhớ vào file trên đĩa trong những trường hợp nhất định Các file này được tải lại khi khởi động lại redis Vì vậy, dữ liệu sẽ không bị mất Ngoài ra, để tăng tính sẵn sàng và khả năng chịu lỗi của hệ thống Redis có thể cấu hình theo dạng Cluster với

kỹ thuật Master-Slave giúp hệ thống redis luôn sẵn sàng đáp ứng sao lưu dữ liệu trên đĩa cứng và phục hồi dữ liệu khi gặp sự cố

Trang 6

Trang 5

1.2 Kiến trúc của Redis

 Kiến trúc Redis chứa hai tiến trình chính: Redis client và Redis

Server

Hình 1.2 Kiến trúc của redis

 Máy khách và máy chủ Redis có thể nằm trong cùng một máy tính hoặc trong hai máy tính khác nhau

 Máy chủ Redis có nhiệm vụ lưu trữ dữ liệu trong bộ nhớ Nó xử lý tất cả các loại quản lý và tạo thành phần chính của kiến trúc Máy khách Redis có thể là máy khách bảng điều khiển Redis hoặc API Redis của bất kỳ ngôn ngữ lập trình nào khác

1.3 Toàn vẹn dữ liệu

1.3.1 Khái niệm toàn vẹn dữ liệu

 Toàn vẹn dữ liệu hay data persistence liên quan đến việc đảm bảo

dữ liệu vẫn có thể tồn tại kể cả khi ứng dụng ngưng hoạt động và

Trang 7

 Những lợi ích của việc lưu trữ dữ liệu ở bộ nhớ phụ:

 Đảm bảo toàn vẹn dữ liệu khi có sự cố xảy ra cũng như tái tạo lại dataset khi khởi động lại server

 Gửi dữ liệu đến các slave server, phục vụ cho tính năng replication

1.3.2 Những cơ chế Redis sử dụng để sao chép dữ liệu từ bộ nhớ chính

Snapshotting (RDB) được mô tả là việc lưu tập dữ liệu trên đĩa trong tệp nhị phân dump.rdb (RDB) Điều này bao gồm

Trang 8

Trang 7

việc sử dụng snapshots để lưu cấu hình, cấu trúc và dữ liệu để phục hồi hệ thống bị lỗi

- Ưu điểm

o Sử dụng RDB nhỏ gọn và do đó cho phép lưu trữ nhiều

dữ liệu hơn Do đó, đây là một lựa chọn tuyệt vời khi bạn cần lưu trữ bộ dữ liệu của mình

o Dễ dàng thực hiện các biện pháp khôi phục bằng cách sử dụng tệp RDB

o So với các phương pháp khác như AOF, RDB nhanh hơn khi tải các tập dữ liệu lớn

- Nhược điểm

o Redis thường tạo các snapshots trong những khoảng thời gian nhất định như sau mỗi năm phút, mười phút, hay ba mươi phút Nên trong trường hợp Redis ngừng hoạt động thì sẽ bị mất dữ liệu sau lần snapshot gần nhất

o RDB cần fork () thường xuyên để snapshot trên đĩa bằng quy trình con fork () có thể tốn thời gian nếu tập dữ liệu lớn và có thể dẫn đến việc Redis ngừng phục vụ client trong vài phần nghìn giây hoặc thậm chí trong một giây nếu tập dữ liệu rất lớn và hiệu suất CPU không lớn

 AOF (Append Only File)

- Cách thức làm việc

Trang 9

Trang 8

Redis server ghi lại mọi thao tác ghi mà nó nhận được vào file AOF trên ổ đĩa Các thao tác này sẽ được thực thi khi khởi động lại máy chủ, tạo lại tập dữ liệu ban đầu

- Ưu điểm

o Nó phù hợp hơn nhiều cho RDB trong trường hợp sao lưu khẩn cấp AOF sẽ tiếp tục thực hiện sao lưu nhật ký trong nền khi nó quá lớn

o Vì phương pháp AOF chỉ bổ sung các thao tác mới được thực hiện nên có rất ít khả năng bị hỏng dữ liệu hoặc mất mác dữ liệu

o Tệp AOF dễ hiểu và dễ xuất vì nó chỉ ghi lại các thao tác được thực thi trên máy chủ một cách tuần tự

- Nhược điểm

o File AOF thường lớn hơn file RDB với cùng 1 dataset

o AOF có thể chậm hơn RDB tùy theo cách thức thiết lập khoảng thời gian cho việc sao lưu vào ổ cứng Tuy nhiên, nếu thiết lập log 1 giây 1 lần có thể đạt hiệu năng tương đương với RDB

1.4 Khả năng đáp ứng cao và mở rộng

1.4.1 Sao chép cơ sở dữ liệu

 Redis dùng cơ chế sao chép master/slave để sao chép cơ sở dữ liệu nhằm cải thiện hiệu suất và khả năng dự phòng

Trang 10

Trang 9

 Hệ thống có một cơ sở dữ liệu tổng thể hoạt động như một giao diện với thế giới bên ngoài, xử lý tất cả các yêu cầu đọc và ghi bên ngoài

Hình 1.3 Cơ chế sao chép cơ sở dữ liệu

Trang 12

Trang 11

Hình 1.5 Cơ chế cluster

1.5 Ưu và nhược điểm của Redis

Ưu điểm

Hiệu quả Tất cả dữ liệu Redis được lưu trữ trong bộ nhớ, cho phép

truy cập dữ liệu có độ trễ thấp và thông lượng cao Không giống như

cơ sở dữ liệu truyền thống, lưu trữ dữ liệu trong bộ nhớ không yêu cầu quyền truy cập vào đĩa, giảm độ trễ của động cơ xuống micro giây Do đó, việc lưu trữ dữ liệu trong bộ nhớ có thể hỗ trợ các hoạt động quy mô lớn hơn với thời gian phản hồi nhanh hơn Ưu điểm này mang lại hiệu suất cực nhanh với thời gian hoạt động đọc và ghi

Trang 13

Trang 12

trung bình dưới một phần nghìn giây và hỗ trợ hàng triệu thao tác mỗi giây

Cấu trúc dữ liệu linh hoạt: Trong khi các kho dữ liệu khóa-giá trị

khác cung cấp cấu trúc dữ liệu hạn chế, Redis cung cấp nhiều cấu trúc dữ liệu khác nhau để đáp ứng nhu cầu ứng dụng như String, List ,Bitmap, Hash,

Đơn giản để sử dụng Redis cho phép bạn viết mã phức tạp truyền

thống với ít dòng đơn giản hơn Với Redis, bạn có thể lưu trữ, truy cập và sử dụng dữ liệu ứng dụng của mình chỉ với một vài dòng mã

Sự khác biệt là các nhà phát triển sử dụng Redis sử dụng cấu trúc lệnh đơn giản hơn là ngôn ngữ truy vấn của cơ sở dữ liệu truyền thống

Nhân rộng và bền bỉ Redis sử dụng kiến trúc bản sao chính và hỗ

trợ sao chép không đồng bộ, có thể sao chép dữ liệu sang nhiều máy chủ bản sao Điều này không chỉ cải thiện hiệu suất đọc (vì các yêu cầu có thể được phân chia trên nhiều máy chủ) mà còn cho phép khôi phục nhanh chóng trong trường hợp máy chủ chính bị lỗi Về tính bền bỉ, Redis hỗ trợ sao lưu điểm trong thời gian (sao chép bộ

dữ liệu Redis vào đĩa)

Tính khả dụng và khả năng mở rộng cao Redis cung cấp kiến trúc

bản sao chính trong cấu trúc liên kết chính hoặc cụm một nút Điều này cho phép bạn xây dựng các giải pháp có tính khả dụng cao mang lại hiệu suất và độ tin cậy nhất quán

Mã nguồn mở Redis là một dự án mã nguồn mở được hỗ trợ bởi một

cộng đồng sôi động

Trang 14

Caching: Được sử dụng để làm bộ nhớ đệm và tạo ra được tốc độ ghi

nhanh có thể chia sẻ được nhiều dữ liệu nằm giữa các ứng dụng hoặc làm database trong khoảng thời gian tạm thời ngoài ra, Redis còn có thể sử dụng để có thể làm Full Page Cache dành cho website Nhờ tính nhất quán bên dù bạn có restart Redis thì người sử dụng sẽ không cảm nhận được việc chậm khi tải trang

Counter: Được ứng dụng để làm bộ đếm Nhờ vào những thuộc tính

tăng giảm thông số nhanh chóng nên các dữ liệu được lưu trữ trên RAM, sets và sorted sets đều được sử dụng phổ biến để có thể thực hiện đếm lượt view cho một website và các bảng xếp hạng ở trong game Redis còn hỗ trợ thread safe nên có thể thực hiện được quá trình đồng bộ dữ liệu giữa các request

Publish/Suscribe (Pub/Sub): Có thể thực hiện tạo kênh, chia sẻ các

dữ liệu Redis sở hữu tính năng có thể hỗ trợ tạo ra các channel để người sử dụng có thể trao đổi dữ liệu giữa publisher và subscriber tương tự như một channel trong Socket Cluster hoặc các topic trong Apache Kafka Ví dụ: Pub/Sub thường được dùng để có thể theo dõi được các kết nối bên trong mạng xã hội cũng như các hệ thống chat khác

Trang 15

Trang 14

Queues: Tạo được hàng đợi để có thể xử lý lần lượt được các request

Redis thường cho phép bạn có thể lưu trữ theo list cũng như cung cấp nhiều thao tác với hầu hết các phần tử bên trong list Chính vì vậy, nó còn được sử dụng và xem như một message queue

Chương 2 – Redis vs Microsoft SQL Server 2.1 Sơ lược về hệ quản trị cơ sở dữ liệu Microsoft SQL Server

Hình 2.1 Logo Microsoft SQL Server

2.1.1 SQL Server là gì?

 SQL Server hay còn gọi là Microsoft SQL Server, viết tắt là MS SQL Server Đây là một phần mềm được phát triển bởi Microsoft dùng để lưu trữ dữ liệu dựa trên chuẩn RDBMS, và nó cũng là một hệ quản trị cơ

sở dữ liệu quan hệ đối tượng (ORDBMS)

 SQL Server cung cấp đầy đủ công cụ để quản lý, từ giao diện GUI cho đến việc sử dụng ngôn ngữ truy vấn SQL Ngoài ra điểm mạnh của nó

Trang 16

Trang 15

là Microsoft có khá nhiền nền tảng kết hợp hoàn hảo với SQL Server như ASP.NET, C# xây dựng Winform, bởi vì nó hoạt động hoàn toàn độc lập

2.1.2 Ưu và nhược điểm của SQL Server

Ưu điểm:

 Có thể cài nhiều phiên bản MS SQL khác nhau trên cùng một máy tính

 Duy trì riêng biệt các môi trường sản xuất, phát triển, thử nghiệm

 Giảm thiểu các vấn đề tạm thời trên cơ sở dữ liệu

 Tách biệt các đặc quyền bảo mật

 Duy trì máy chủ dự phòng

Nhược điểm:

 Cần thanh toán phí license để chạy nhiều CSDL (database)

2.2 So sánh Redis với Microsoft SQL Server

2.2.1 Hệ thống

Trang 17

Trang 16

hệ được phát triển bởi tập đoàn Microsoft

Hệ quản trị CSDL memory được phát triển và quản lí bởi đội ngũ của redis

in-Mô hình chính Mô hình quan hệ Mô hình khóa-giá trị

Mô hình phụ Tài liệu, đồ thị Tài liệu, đồ thị, chuỗi

Nơi lưu trữ dữ liệu

2.2.2 Thời gian thực hiện các câu truy vấn

 Xây dựng dữ liệu mẫu

CSDL gồm bảng customer (khóa chính: CustomerID)

Trang 18

 Thời gian thực hiện truy vấn của cơ sở dữ liệu

+ Truy vấn Select: Kết quả được thể hiện như bảng 1

Trang 19

Bảng 1 cho thấy dữ liệu càng lớn thì thời gian thực hiện câu truy vấn

Select của CSDL SQL Server lớn hơn nhiều lần so với CSDL Redis

+ Truy vấn Insert: Kết quả được hiển thị như bảng 2

Bảng 2 Kết quả thời gian truy vấn

Bảng 2 cho thấy được thời gian thực hiện câu truy vấn Insert của CSDL

SQL Server lớn hơn nhiều lần so với CSDL Redis

+ Truy vấn Delete: Kết quả được hiển thị như bảng 3

0 10 20 30 40 50 60

Biểu đồ truy vấn Select

0 500 1000 1500 2000 2500 3000 3500 4000

Biểu đồ truy vấn Insert

Trang 20

Bảng 3 cho ta thấy được thời gian thực hiện câu truy vấn Delete của

CSDL SQL Server lớn hơn nhiều lần so với CSDL Redis khi dữ liệu bản ghi càng nhiều

+ Truy vấn Update: Kết quả được hiển thị như bảng 4

Bảng 4 Kết quả thời gian truy vấn

Bảng 4 cho ta thấy được việc thực hiện câu truy vấn Update của CSDL

SQL Server cũng mất thời gian hơn so với CSDL Redis

0 50 100 150 200 250 300 350 400 450

Biểu đồ truy vấn Delete

0 1000 2000 3000 4000

Biểu đồ truy vấn Update

Trang 21

Trang 20

Tóm lại, thời gian truy vấn của CSDL SQL Server tỏ ra khá chậm so với

CSDL Redis khi dữ liệu ngày càng lớn Với xu hướng hiện nay, đòi hỏi tốc độ truy vấn dữ liệu phải nhanh chóng thì Redis là một giải pháp tốt cho các nhà phát triển phần mềm

Trang 22

Trang 21

Tài liệu tham khảo

[1] https://viblo.asia/p/tim-hieu-ve-redis-LzD5dXEW5jY

[2] redis-as-a-primary-database-2c55

https://dev.to/techworld_with_nana/redis-the-what-why-and-how-to-use-[3] http://qnimate.com/overview-of-redis-architecture/

[4]

https://www.eginnovations.com/documentation/Redis/Redis-Architecture.htm

[5] uu-hieuxuat

https://levanphu.info/redis-la-gi-tai-sao-can-hieu-va-su-dung-redis-de-toi-[6] Nguyễn GiaTuấnAnh (2016), Bài giảng môn Cơ sở dữ liệu nâng cao, Trường Đại học Công nghệ Thông tin

[7] "Redis." Internet: http://redis.io

Ngày đăng: 04/07/2022, 08:11

HÌNH ẢNH LIÊN QUAN

Hình 1.2 Kiến trúc của redis - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Hình 1.2 Kiến trúc của redis (Trang 6)
Hình 1.3 Cơ chế sao chép cơ sở dữ liệu - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Hình 1.3 Cơ chế sao chép cơ sở dữ liệu (Trang 10)
Hình 1.4 Cơ chế sentinel - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Hình 1.4 Cơ chế sentinel (Trang 11)
Hình 1.5 Cơ chế cluster - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Hình 1.5 Cơ chế cluster (Trang 12)
Hình 2.1 Logo Microsoft SQL Server - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Hình 2.1 Logo Microsoft SQL Server (Trang 15)
Mơ hình chính Mơ hình quan hệ Mơ hình khóa-giá trị - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
h ình chính Mơ hình quan hệ Mơ hình khóa-giá trị (Trang 17)
 Phần mềm và cấu hình máy tính sử dụng - Phần mềm:  - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
h ần mềm và cấu hình máy tính sử dụng - Phần mềm: (Trang 18)
Hình 2.2 Lược đồ cơ sở dữ liệu - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Hình 2.2 Lược đồ cơ sở dữ liệu (Trang 18)
Bảng 1. Kết quả thời gian truy vấn - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Bảng 1. Kết quả thời gian truy vấn (Trang 19)
Bảng 1 cho thấy dữ liệu càng lớn thì thời gian thực hiện câu truy vấn - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Bảng 1 cho thấy dữ liệu càng lớn thì thời gian thực hiện câu truy vấn (Trang 19)
Bảng 3. Kết quả thời gian truy vấn - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Bảng 3. Kết quả thời gian truy vấn (Trang 20)
Bảng 3 cho ta thấy được thời gian thực hiện câu truy vấn Delete của - Đồ án Quản Lý thông tin UIT so sánh Redis với SQL server
Bảng 3 cho ta thấy được thời gian thực hiện câu truy vấn Delete của (Trang 20)

TỪ KHÓA LIÊN QUAN