Redis Cấu Hình Và Quản Lý Dữ Liệu

Tốc Độ Đọc/ghi Giữa RAM và Ổ Cứng

RAM (Bộ nhớ truy cập ngẫu nhiên) và ổ cứng (như HDD hoặc SSD) có sự khác biệt rất lớn về tốc độ đọc/ghi, do chúng dựa trên các công nghệ và nguyên lý vật lý hoàn toàn khác nhau. Tốc độ truy cập của RAM nhanh hơn nhiều so với ổ cứng.

  • RAM: Dữ liệu được đọc/ghi trực tiếp từ các chip bộ nhớ mà CPU có thể truy cập một cách nhanh chóng. Thời gian chờ của RAM thường nằm trong phạm vi vài chục nanogây (ns), tốc độ truyền dữ liệu có thể đạt hàng chục đến hàng trăm GB mỗi giây.
  • Ổ cứng HDD: Là thiết bị lưu trữ dựa trên đĩa quay, việc đọc/ghi dữ liệu yêu cầu di chuyển đầu đọc đến vị trí chính xác, quá trình này tương đối chậm. Thời gian chờ trung bình của HDD thường nằm trong khoảng vài mili giây (ms), tốc độ truyền dữ liệu thông thường vào khoảng vài chục đến vài trăm MB mỗi giây.
  • Ổ cứng SSD: Mặc dù SSD dựa trên flash và nhanh hơn nhiều so với HDD, nhưng vẫn thường chậm hơn RAM. Thời gian chờ của SSD thường nằm trong khoảng vài chục đến vài trăm microgiây (µs), tốc độ truyền dữ liệu có thể đạt vài trăm MB đến vài GB mỗi giây.

Nói chung, tốc độ của RAM nhanh hơn khoảng 10.000 đến 100.000 lần so với HDD và khoảng 100 đến 1.000 lần so với SSD. Các con số này chỉ là ước tính thô, hiệu suất thực tế sẽ phụ thuộc vào phần cứng cụ thể và hoạt động đang diễn ra.

Vì vậy, khi bạn so sánh các hệ thống như Redis (cơ sở dữ liệu trong bộ nhớ) và MySQL (thường lưu trữ trên ổ HDD hoặc SSD), Redis có lợi thế đáng kể về tốc độ truy cập dữ liệu, điều này khiến nó được sử dụng rộng rãi trong các tình huống yêu cầu tốc độ đọc/ghi cao (như bộ đệm).

Cấu Hình Mạng Trên Linux

[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="e75b83e9-2f9d-4c2e-9e7b-a83f9d2c2e4f"
DEVICE="eth0"
ONBOOT="yes"
#Địa chỉ IP
IPADDR="192.168.1.10"
#Cổng mặc định
GATEWAY="192.168.1.1"
#Máy chủ DNS
DNS1="8.8.8.8"

Cài Đặt Redis Và Khởi Động Dịch Vụ

# Cài đặt môi trường lập trình C gcc
[root@server ~]# yum install gcc

# Giải nén gói Redis
[root@server opt]# tar -zxvf redis-6.2.6.tar.gz

# Chuyển đến thư mục chứa mã nguồn Redis
[root@server opt]# cd redis-6.2.6/

# Biên dịch Redis
[root@server redis-6.2.6]# make

# Cài đặt Redis
[root@server redis-6.2.6]# make install

# Sao chép file cấu hình Redis vào thư mục /etc/
[root@server redis-6.2.6]# cp redis.conf /etc/redis.conf

# Khởi động Redis server
[root@server bin]# /usr/local/bin/redis-server /etc/redis.conf

Sử Dụng Redis-cli

Kết Nối Đến Redis Server

Có hai cách để kết nối tới Redis Server:

# Cách 1: Kết nối không chỉ định cổng, tức là sử dụng cổng mặc định 6379
[root@server bin]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> quit

# Cách 2: Kết nối bằng cách chỉ định cổng (phù hợp khi cổng đã được thay đổi)
[root@server bin]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> quit

Đóng Redis Server

Có ba cách để đóng Redis Server:

# Cách 1: Không chỉ định cổng, mặc định sẽ đóng cổng 6379
[root@server bin]# redis-cli shutdown

# Cách 2: Chỉ định cổng để đóng
[root@server bin]# redis-cli -p 6379 shutdown

# Cách 3: Sử dụng lệnh bên trong Redis CLI để đóng
[root@server bin]# redis-cli
127.0.0.1:6379> shutdown

Thao Tác Với Redis Keys

Xóa Redis Key Theo Mẫu

Lệnh del không hỗ trợ mẫu, cần sử dụng đường ống để xử lý:

# Sử dụng đường ống để xóa các key theo mẫu
redis-cli keys "order:*" | xargs redis-cli del

Kiểm Tra Sự Tồn Tại Của Một Key

Dùng lệnh EXISTS để kiểm tra xem một key có tồn tại hay không:

EXISTS user:12345

Nếu key user:12345 tồn tại, lệnh sẽ trả về 1; nếu không tồn tại, sẽ trả về 0.

Quản Lý Dữ Liệu Trong Redis

Chức Năng TTL

TTL là viết tắt của "Time to Live", nghĩa là "Thời gian sống".

Khôi Phục File Backup dump.rdb

Trong Redis, nếu bạn muốn khôi phục lại dữ liệu từ file backup dump.rdb, cần đảm bảo rằng file này được tạo và lưu trữ đúng cách.

# Sửa file cấu hình Redis
[root@server ~]# vi /etc/redis.conf

# Thay đổi vị trí lưu trữ file dump.rdb
dir /backup/

# Lệnh tạo file dump.rdb thủ công
save

AOF Persistence

Trong file cấu hình redis.conf, thuộc tính save dùng để cấu hình tự động chụp ảnh (snapshotting). Nếu bạn đặt save "", thì Redis sẽ không tự động tạo snapshot dựa trên thời gian và số lượng thay đổi. Tuy nhiên, khi sử dụng lệnh SHUTDOWN, Redis vẫn sẽ thực hiện một lần RDB snapshot để đảm bảo dữ liệu được lưu trữ an toàn.

# Cấu hình AOF persistence
appendonly yes
appendfilename "appendonly.aof"

Cluster Redis

Tạo Cluster Redis

Để tạo cluster Redis, bạn cần sử dụng lệnh sau:

redis-cli --cluster create 192.168.1.10:6379 192.168.1.11:6379 192.168.1.12:6379 --cluster-replicas 1

Lệnh trên sẽ tạo một cluster Redis với ba nút chính và mỗi nút có một bản sao.

Quản Lý Slot Trong Redis Cluster

Bạn có thể quản lý slot trong Redis cluster bằng các lệnh sau:

# Kiểm tra slot của một key
192.168.1.10:6379> CLUSTER KEYSLOT k1

# Đếm số lượng key trong một slot
192.168.1.10:6379> CLUSTER COUNTKEYSINSLOT 12345

# Lấy danh sách các key trong một slot
192.168.1.10:6379> CLUSTER GETKEYSINSLOT 12345 10

ACL Trong Redis

Liệt Kê Tất Cả ACL

127.0.0.1:6379> acl list

Lệnh trên sẽ liệt kê tất cả các quy tắc ACL hiện có.

Thêm Người Dùng

127.0.0.1:6379> acl setuser newuser on >password ~* +@all

Lệnh trên sẽ thêm một người dùng mới với tên là newuser, bật trạng thái, thiết lập mật khẩu, cho phép truy cập tất cả các key và thực hiện tất cả các lệnh.

Xóa Người Dùng

127.0.0.1:6379> acl deluser olduser

Lệnh trên sẽ xóa người dùng olduser.

Thẻ: Redis linux Network Configuration cluster

Đăng vào ngày 10 tháng 7 lúc 04:38