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
SVTH: LƯU TẤN HƯNG
- MSSV: 20521364
NGUYỄN THANH HIẾU - MSSV: 20521328
IE103 Quản lý thông tin
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 1
IE103 Quản lý thơng tin
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 2
IE103 Quản lý thông tin
CHƯƠNG 1 – TỔNG QUAN VỀ REDIS
1.1 Hệ quản trị cơ sở dữ liệu redis
1.1.1 Redis là gì?
Redis là CSDL dạng khóa - giá trị (key-value) , được cung cấp dưới
dạng mã nguồn mở. Dữ liệu của Redis được lưu dưới dạng cặp khóa - giá trị.
Giá trị được truy xuất thơng qua khóa. Có thể sử dụng như một database, bộ
nhớ cache hay một message broker.
Ư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 3
IE103 Quản lý thông tin
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 ngun 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
nó.
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. Ngồ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 4
IE103 Quản lý thông tin
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 Tồ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 5
IE103 Quản lý thơng tin
có thể tải lên để xử lý tiếp khi hệ thống hoạt động trở lại sau sự
cố.
Vấn đề này có ý nghĩa quan trọng đối với Redis vì như đã nêu ở
trên, Redis lưu trữ dữ liệu trên RAM thay vì bộ nhớ ngồi nên khi
xảy ra dữ cố chẳng hạn như server bị tắt nguồn thì tồn bộ dữ
liệu hiện RAM sẽ biến mất. Do đó, để đảm bảo dữ liệu khơng
hồn tồn bị mất đi, Redis đã áp dụng thêm những cơ chế để lưu
trữ dữ liệu trên bộ nhớ phụ.
Những lợi ích của việc lưu trữ dữ liệu ở bộ nhớ phụ:
Đảm bảo tồ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
sang bộ nhớ phụ
Snapshotting (RDB)
-
Cách thức làm việc
RDB (Redis Database Backup File) là định dạng tệp nhị
phân được sử dụng để chụp và lưu trữ những snapshots của
tập dữ liệu.
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 6
IE103 Quản lý thông tin
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 7
IE103 Quản lý thông tin
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 8
IE103 Quản lý thơng tin
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 u cầu đọc và ghi bên
ngồi.
Hình 1.3 Cơ chế sao chép cơ sở dữ liệu
Lợi ích:
o Cải thiện hiệu suất bằng cách mở rộng khối lượng công việc
sang nhiều cơ sở dữ liệu phụ.
o Tạo bản sao lưu từ cơ sở dữ liệu phụ mà không làm gián
đoạn cơ sở dữ liệu chính.
1.4.2 Cơ chế sentinel
Redis Sentinel dùng để giám sát các node trong cụm Redis.
Khi master không thể phục vụ, Sentinel đảm nhiệm nhiệm vụ
giám sát sẽ tự lựa chọn một master mới trong các slaves. Cơ chế
Trang 9
IE103 Quản lý thơng tin
này rất hữu ích khi khơng phải login vào server, khắc phục thủ
công bằng tay bằng cách nâng 1 slave bất kỳ lên làm master.
Hình 1.4 Cơ chế sentinel
1.4.2 Cơ chế cluster
Redis Cluster giúp Redis hoạt động theo mơ hình phân tán,
chia một instance thành nhiều cluster.
Trang 10
IE103 Quản lý thơng tin
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 11
IE103 Quản lý thơng tin
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 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 12
IE103 Quản lý thơng tin
Nhược điểm
Vì Redis sử dụng RAM làm bộ nhớ cho mình nên khi lượng file
cache lớn thì sẽ dẫn đến trường hợp thiếu RAM cho Server.
Khơng thể truy vấn trực tiếp các object.
1.6 Ứng dụng của Redis
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 13
IE103 Quản lý thông tin
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. Ngồi ra điểm mạnh của nó
Trang 14
IE103 Quản lý thơng tin
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 hồn tồ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 tố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 15
IE103 Quản lý thông tin
Mô tả
Microsoft SQL Server
Redis
Hệ quản trị CSDL quan
Hệ quản trị CSDL in-
hệ được phát triển bởi
memory được phát
tập đồn Microsoft
triển và quản lí bởi đội
ngũ của redis
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
thời gian
Hệ điều hành hỗ trợ
Linux, Windows
BSD, Linux, OS X,
Windows
Ngơn ngữ lập trình hỗ
C#, C++, Java, R, Ruby,
C, C#, Crystal, Haskell,
trợ
Go, Delphi, …
Javascript, Lua, Java, …
Nơi lưu trữ dữ liệu
Bô nhớ phụ
Bộ nhớ chinh
Ngơn ngữ truy vấn có
Tất cả u cầu được
cấu trúc SQL
thực hiện thơng qua
chính
Ngơn ngữ truy vấn
lệnh
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 16
IE103 Quản lý thơng tin
Hình 2.2 Lược đồ cơ sở dữ liệu
Phần mềm và cấu hình máy tính sử dụng
-
Phần mềm:
+ Ngơn ngữ lập trình: Javascript và Nodejs phiên bản 16.14.2
+ CSDL SQL Server 2019 Express
+ CSDL Redis phiên bản 7.0
-
Cấu hình máy tính: CPU Intel Core i5-1035G1, tốc độ 1.00GHz,
RAM 8GB, HDD 312GB, hệ điều hành Windows 10-64bit.
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 17
IE103 Quản lý thông tin
Bảng 1. Kết quả thời gian truy vấn
(đơn vị: giây)
Redis
Biểu đồ truy vấn Select
60
Bản ghi
(1k=1000)
10K
SQL Server
0,55
0,8 x10-6
30
100K
1,32
0,85 x10-6
20
200K
15,5
3,4 x10-6
10
500K
20,2
18 x10-6
1000K
52.39
86 x10-6
50
40
0
10K
100K
200K
SQL Server
500K
1000K
Redis
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
(đơn vị: giây)
Bản ghi
(1k=1000)
SQL Server
Redis
10K
39,9
0,87 x10-6
100K
87,1
8,7 x10-6
200K
180,4
21,5 x10-6
500K
2210
47,3 x10-6
1000K
3622
91,8 x10-6
Biểu đồ truy vấn Insert
4000
3500
3000
2500
2000
1500
1000
500
0
10K
100K
200K
SQL Server
500K
1000K
Redis
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
Trang 18
IE103 Quản lý thông tin
Bảng 3. Kết quả thời gian truy vấn
(đơn vị: giây)
Bản ghi
(1k=1000)
10K
SQL
Server
11,76
Redis
0,9 x10-6
100K
129,4
7,9 x10-6
200K
187,3
8,9 x10-6
500K
254,1
12,7 x10-6
1000K
415,23
15,7 x10-6
Biểu đồ truy vấn Delete
450
400
350
300
250
200
150
100
50
0
10K
100K
200K
SQL Server
500K
Redis
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
(đơn vị: giây)
Bản ghi
SQL Server
Redis
(1k=1000)
10K
13
0,8 x10-6
100K
207,65
8,3 x10-6
200K
700,8
28,3 x10-6
500K
2105,7
68,3 x10-6
10K
3605,1
83,3 x10-6
Biểu đồ truy vấn
Update
4000
3000
2000
1000
0
10K
100K
200K
SQL Server
500K
Redis
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.
Trang 19
IE103 Quản lý thơng tin
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 20
IE103 Quản lý thông tin
Tài liệu tham khảo
[1]. a/p/tim-hieu-ve-redis-LzD5dXEW5jY
[2]. />[3]. />[4]. />[5]. o/redis-la-gi-tai-sao-can-hieu-va-su-dung-redis-de-toiuu-hieuxuat
[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: .
Trang 21