You are on page 1of 76

Key-Values

Redis
Giáo viênThành
hướng viên:
dẫn:
19520871 ThS.Nguyễn
Tạ Thu Quốc
Thủy
Quân
19522503 Trần Thị Thanh
Tuyền
INFORGRAPHIC
01 02 03 04 05

GIỚI THIỆU ĐẶC TRƯNG QUY TRÌNH ỨNG DỤNG SO SÁNH

Giới thiệu Các đặc Quy trình Ứng dụng So sánh


chung về trưng của thực hiện nổi bật Redis vs
Redis Redis của Redis của Redis Memcached
INFORGRAPHIC
01 02 03 04 05

GIỚI THIỆU ĐẶC TRƯNG QUY TRÌNH ỨNG DỤNG SO SÁNH

Giới thiệu Các đặc Quy trình Ứng dụng So sánh


chung về trưng của thực hiện nổi bật Redis vs
Redis Redis của Redis của Redis Memcached
01 1.1 KEY-VALUE DATABASE

Ví dụ key-value
02 1.2 Sự ra đời của Redis
03 1.2 Sự ra đời của Redis

RA ANSI DISK
M C
REDIS
04 1.3 Tổng quan về Redis
05 1.3 Tổng quan về Redis
●Là một dạng DBMS NoSQL sử dụng cấu trúc
Key-Value.
●Có mã nguồn mở.
●Viết bằng ANSI C.
REDIS
●Nổi tiếng với độ trễ dưới 1 mili giây.
06 1.3 Tổng quan về Redis
●Hỗ trợ hầu hết ngôn ngữ lập trình như C, C#,
Java, Dart, PHP,…
●Hỗ trợ phần lớn hệ thống POSIX như Linux,
BSD, OS X.
REDIS
●Khách hàng giao tiếp với server qua giao thức
RESP (Redis Serialize Protocol).
INFORGRAPHIC
01 02 03 04 05

GIỚI THIỆU ĐẶC TRƯNG QUY TRÌNH ỨNG DỤNG SO SÁNH

Giới thiệu Các đặc Quy trình Ứng dụng So sánh


chung về trưng của thực hiện nổi bật Redis vs
Redis Redis của Redis của Redis Memcached
07 2.1 DATA TYPES

●STRING
●LIST
●SET
●HASH
●SORTED SET
08 STRING

●Là kiểu dữ liệu cơ bản nhất.


●Một String đạt tối đa 512 MB.
●Redis key cũng chính là một chuỗi. Điều này nghĩa là
khi nếu kiểu dữ liệu của value là String thì ta đang ánh
xạ một String tới một String khác.
09 LIST
●Redis List là danh sách các Strings, được sắp
xếp theo thứ tự chèn vào.
●Có thể chèn vào list bên trái hoặc bên phải.
●Điều khác biệt với dữ liệu truyền thống là Redis
List định nghĩa thêm 1 thuộc tính lưu chiều dài
List.
● Chiều dài tối đa là 2^32 – 1 phần tử
(4294967295, hơn 4 tỉ phần tử trong một list)
10 SET
●Redis Set tương tự với List, điểm khác biệt là
các phần tử trong Set không được sắp theo thứ
tự.
●Tuy nhiên Redis tăng hiệu năng cho Set bằng
cách sử dụng bảng băm (Hash table) để lưu trữ
phần tử của Set.
●Số lượng phần tử của Set là 2^32 – 1 phần tử.
11 HASH
●Redis Hash là tập hợp map giữa key và value,
khác với List và Set là lưu trữ tập dữ liệu các
String.
●Là kiểu dữ liệu thích hợp để đại diện cho các
đối tượng.
●Mỗi Hash có thể chứa 2^32 – 1 cặp key-value.
12 SORTED SET
●Redis Sorted Set tương tự như Redis Set.
●Điều khác biệt duy nhất là mỗi phần tử của
Sorted Set thiết lập ứng với một số gọi là score.
●Score dùng để sắp xếp Sorted Set theo thứ tự
của chúng.
●Score có thể trùng nhau.
●Có thể nói Sorted Set là phiên bản đầy đủ hơn
của Set.
13 SORTED SET
●Ta có thể thêm, xóa, sửa phần tử rất nhanh
chóng bằng Sorted Set.
●Với Sorted Set ta có thể làm nhiều tác vụ khác
nhau với hiệu năng cao mà ít kiểu dữ liệu thuộc
database khác làm được.
14 2.2 Lưu trữ trên RAM
15 2.2 Lưu trữ trên RAM

Mọi thao tác đọc/ghi, lưu trữ dữ liệu đều ở trên RAM.

Hiệu năng nhanh hơn rất nhiều so với CSDL sử dụng trên ổ cứng.
16 2.3 Redis Persistence
17 2.3 Redis Persistence

PERSISTENCE có nghĩa là lưu data (như dữ liệu trong RAM)


vào các thiết bị lưu trữ (như ổ cứng) để có thể lưu trữ vĩnh viễn.
18 2.3 Redis Persistence

Tuy làm việc với data lưu trữ trên RAM nhưng Redis cũng cần lưu trữ
vào ổ cứng, có 2 lí do sau:

Đảm bảo toàn vẹn dữ liệu khi xảy ra sự cố và tái tạo dataset khi
restart server.

Gửi data đến slave server, phục vụ tính năng sao chép nhân
rộng.
19 2.3 Redis Persistence
Redis Persistence cung cấp cho người dùng các lựa chọn sau:
RDB (Redis database file): Sau 1 khoảng thời gian đặt trước
sẽ thực hiện lưu data vào ổ cứng.
AOF (Append only file): Lưu lại vào ổ cứng mọi thao tác viết
dữ liệu
No persistence: Tắt nếu ứng dụng không cần backup data.
RDB + AOF: Kết hợp cả 2 nhưng khi restart Redis thì AOF
sẽ được ưu tiên để khởi động lại dataset.
20 2.4 Redis Modules
21 2.3 Redis
Redis Search
Modules
22 2.3 Redis
Redis Modules
Graph
23 2.3 Redis
Redis Modules
JSON
INFORGRAPHIC
01 02 03 04 05

GIỚI THIỆU ĐẶC TRƯNG QUY TRÌNH ỨNG DỤNG SO SÁNH

Giới thiệu Các đặc Quy trình Ứng dụng So sánh


chung về trưng của thực hiện nổi bật Redis vs
Redis Redis của Redis của Redis Memcached
24

3.1
Cài đặt Redis
25 PLATFORM REDIS SUPPORTS
Platform Versions/Information
14.04 (Support ends on November 30, 2020)
Ubuntu 16.04, 18.04

6.7, 6.8, 6.9 (Support ends on November 30,


RHEL/CentOS 6
2020)

7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9
RHEL/CentOS 7 Requires OpenSSL 1.0.2 and 
firewall configuration

Oracle Linux 6 Based on the corresponding RHEL version

Oracle Linux 7 Based on the corresponding RHEL version

Amazon Linux  Version 1

Docker images of Redis Enterprise Software are


Docker
certified for Development and Testing only.

Kubernetes, Pivotal Platform (PCF) and other


See the Platform documentation
orchestration and cloud environments
26 PLATFORM REDIS SUPPORTS

Bên cạnh đó Redis


cũng hỗ trợ máy ảo
VNWARE
27 REDIS ON WINDOWS

Từ danh sách trên ta thấy


Windows không được
Redis hỗ trợ.

Tuy nhiên ta vẫn có thể sử


dụng Redis trên Windows
bằng 2 cách.
27 REDIS ON WINDOWS

Sử dụng bản port của


Sử dụng Vnware
Microsoft
01
28 3.2
Tạo database
trên RedisLab
INFORGRAPHIC
01 02 03 04 05

GIỚI THIỆU ĐẶC TRƯNG QUY TRÌNH ỨNG DỤNG SO SÁNH

Giới thiệu Các đặc Quy trình Ứng dụng So sánh


chung về trưng của thực hiện nổi bật Redis vs
Redis Redis của Redis của Redis Memcached
29
30 Làm bộ nhớ đệm (Cache)

Redis có Redis
thể hoạt động được
thường như 1sửbộdụng
nhớ làm
trong hoặc
hệbộ nhớ lưu
thống cache.
trữ cache - bộ nhớ
đệm
Redis hỗtrong các ứng
trợ nhiều kiểudụng cần truy
cấu trúc
xuất(hash,
dữ liệu dữ liệu vớiset,…)
list, tốc độ phản hồi
nhanh.
Công nghệ đọc/ghi data được
thiết kế và tối ưu hiệu suất cao. Web caching
Cho phép Scripting bằng ngôn
ngữ Lua.
31 Làm bộ nhớ đệm (Cache)

Với Redis, user giảm bớt truy vấn


database và tiết kiệm thời gian thực
hiện một trang WordPress.

WordPress chạy nhanh hơn, sử


dụng ít tài nguyên hơn, cung cấp WordPress - CMS
bộ nhớ cache điều chỉnh liên tục. phổ biến nhất
32 Làm cơ sở dữ liệu (Database)
Bản chất Redis là một server cấu trúc dữ liệu.

Redis có cơ chế backup dữ liệu trên ổ cứng như DBMS khác.

Độ bảo mật và sửa lỗi cao là ưu điểm của Redis.


33 Làm cơ sở dữ liệu (Database)
Kết hợp với một database khác như MySQL để tăng tốc độ xử
lý.
34 Làm cơ sở dữ liệu (Database)
Redis còn có nhiều ứng dụng tiêu biểu khác như:

● Trình chuyển tiếp tin nhắn


● Máy học
● Kho phiên
● Bảng xếp hạng trò chơi
● Phát trực tiếp đa phương tiên
● Phân tích thời gian thực…
Dựng máy học với FastAPI,
Redis và Docker
INFORGRAPHIC
01 02 03 04 05

GIỚI THIỆU ĐẶC TRƯNG QUY TRÌNH ỨNG DỤNG SO SÁNH

Giới thiệu Các đặc Quy trình Ứng dụng So sánh


chung về trưng của thực hiện nổi bật Redis vs
Redis Redis của Redis của Redis Memcached
35
Redis Memcached

VS
36 Điểm giống nhau
Redis Memcached

VS
37 Điểm khác nhau
 Server-end data operations (các phép  Disk I/O dumping (Backup dữ liệu)
Redis
toán cho dữ liệu ở phía server) 
Memcached
Usage (cách sử dụng)
 Memory usage efficiency (Mức độ  Scalable (khả năng mở rộng)
hiệu quả trong sử dụng bộ nhớ)

 Performance comparison (So sánh


VS Speed (tốc độ)
 Kind of data (loại dữ liệu)
hiệu năng)

 Read/write speed (Tốc độ đọc ghi)

 Maximum data size (Kích thước dữ


38 Server-end data operations 
(Các phép toán cho dữ liệu phía server)

Redis Memcached
Hỗ trợ các phép toán cho dữ Ra đời trước nên hỗ trợ ít
liệu phía server nhiều hơn
Memcached.
VS phép toán hơn.

Nếu muốn hệ thống cache


được cấu trúc dữ liệu phưc tạp
thì Redis là lựa chọn tốt hơn.
39 Memory usage efficiency
(Mức độ hiệu quả trong sử dụng bộ nhớ)

Redis Memcached
Nếu sử dụng Redis với các Memcached sử dụng hiệu quả

quả hơn Memcached.


VS
cấu trúc dạng Hash thì sẽ hiệu hơn với kiểu dữ liệu key-
value đơn giản.
40 Performance comparison
(So sánh hiệu năng)

Redis Memcached
Redis chỉ sử dụng duy nhất Memcached được tối ưu để sử
một core CPU. VS
Redis sẽ có hiệu năng lớn hơn
dụng nhiều core CPU.
Memcached vượt trội nếu so
khi so sánh lượng dữ liệu trên sánh dữ liệu tổng thể.
một core. Dù Redis đã tối ưu cho dữ liệu
lớn nhưng vẫn kém hơn
Memcached.
41 Read/write speed
(Tốc độ đọc/ghi)

Cả 2 đều rất nhanh.


Nhưng thường thì Redis
nhanh gần bằng
VS
Memcached.
42 Maximum data size
(Kích thước dữ liệu tối đa)

Redis Memcached
Kích thước tối đa cả Key và Kích thước tối đa của Key là
Value của Redis là 512MB. VS 250 bytes.
Kích thước tối đa mặc định
của Value là 1MB.
43 Disk I/O dumping
(Backup dữ liệu)

Redis Memcached
Redis có cơ chế mặc định Memcached không có cơ chế
backup dữ liệu vào ổ cứng. VS
backup dữ liệu nếu không có
phần mềm thứ 3 hỗ trợ.
44 Usage
(Cách sử dụng)

Redis Memcached
Redis dễ cài đặt và sử dụng Memcached khó cài đặt hơn
hơn. VS
Redis.
45 Scalable
(Khả năng mở rộng)

Redis Memcached
Hỗ trợ các bản sao master- Không hỗ trợ sao chép.
slave. VS
Nhưng có thể sử dụng phần
mềm thứ ba để hỗ trợ như
Repcached.
46 Data types
(Kiểu dữ liệu)

Redis Memcached
Có nhiều kiễu dữ liệu hơn như Kiểu dữ liệu choỗi và số
VS
choỗi, danh sách, hàm băm,… nguyên.
47
Ngôn ngữ hỗ
trợ
Redis hỗ trợ hầu hết ngôn
ngữ được sử dụng để lập
trình.
Memcached thì hỗ trợ ít VS
hơn nhưng vẫn hỗ trợ được
toàn bộ các ngôn ngữ phổ
biến.
48 Tổng kết
●Hoạt động tốt, nhanh, đơn giản.
●Cho phép lưu trữ cặp key-value với dữ
liệu < 1MB.
●Tuy nhiên restart sẽ mất dữ liệu.
●Có các tool, service bên thứ 3 hỗ trợ.
●Rất phù hợp với các dự án chỉ cần cache
data nhẹ, đơn giản.
Memcached
49 Tổng kết
●Có thể làm như Memcached thậm chí còn
tốt hơn.
●Cũng có thể sử dụng như bộ nhớ cache
nhưng dữ liệu lưu trữ lên tới 512MB.
●Restart vẫn lưu lại dữ liệu và đây là cài
đặt mặc định.
●Tool, service nhiều hơn Memcached.
●Hệ thống sử dụng Redis cũng nhiều hơn
Redis Memcached.
50 Độ phổ biến
Redis hiện tại là DBMS phổ biến thứ 6 trên toàn thế giới
tính đến tháng 8/2021.

Trong khi đó Memcached đứng thứ 30 về độ phổ biến.


51 Độ phổ biến
Nhờ các ưu điểm trên giúp Redis đứng đầu độ phổ biến
DBMS có cấu trúc key-value.
Memcahed theo sau đó đứng hạng 4.
52

Kết Luận
53

Ưu điểm
54

Hiệu năng cao, độ trễ thấp


55

Cấu trúc dữ liệu linh hoạt


56

Đơn giản và dễ sử dụng


57

Cộng đồng người dùng lớn

Hiệu năng cao, độ trễ thấp


58 Khả năng mở rộng lớn

Hiệu năng cao, độ trễ thấp


59 Hỗ trợ Transaction

Hiệu năng cao, độ trễ thấp


60

Nhược
điểm
61 Không sử dụng được cấu trúc dữ liệu
quan hệ
62

Khả năng phục hồi dữ liệu chưa tốt


63 Không điều khiển được
truy cập dữ liệu
64 Định hướng phát triển

Tối ưu cho việc sử dụng nhiều core CPU thay vì chỉ một core
CPU.
Tăng cường bảo mật, đặc biệt là phân quyền truy cập dữ liệu.
Giúp Redis trở nên nhanh hơn nữa.
Giúp Redis dễ sử dụng hơn.
65 Định hướng phát triển

Hỗ trợ hệ điều hành Windows.


Cải thiện giao diện người dung.
Cảm ơn cô và
các bạn đã lắng
nghe

You might also like