Hướng dẫn cài đặt Redis và cấu hình Master/Slave

Chào các bạn,

Bài viết hôm nay sẽ hướng dẫn các bạn cài đặt Redis Server và cấu hình Replication cho Redis.

Giới thiệu

*Redis là 1 hệ thống lưu trữ key-value rất mạnh mẽ và phổ biến hiện nay. Redis nổi bật bởi việc hỗ trợ nhiều cấu trúc dữ liệu cơ bản(hash, list, set, sorted set, string), giúp việc thao tác với dữ liệu tốt hơn các hệ thống cũ như memcached rất nhiều. Bên cạnh lưu trữ key-value trên RAM giúp tối ưu performance, redis còn có cơ chế sao lưu dữ liệu trên đĩa cứng cho phép phục hồi dữ liệu khi gặp sự cố.

* Trích dẫn Internet.

Cài đặt Redis trên CentOS 7

Cài đặt Epel repo và update các package lên phiên bản mới nhất

yum install epel-release
yum update

Cài đặt và start Redis

yum install redis
systemctl start redis
systemctl enable redis

Sau đó các bạn kiểm tra lại Redis đã hoạt động chưa bằng lệnh:

redis-cli ping
>PONG

Cấu hình Redis cơ bản

Như chúng ta đã biết, Redis là một hệ thống cơ sở dữ liệu chạy trên RAM, do đó dữ liệu database sẽ mất đi nếu tắt server hoặc có sự cố. Vì vậy, Redis hỗ trợ 2 phương thức để lưu dữ liệu xuống Disk

RDB: Toàn bộ dữ liệu chạy trên RAM sẽ được lưu vào một single-file point-in-time .RDB, bạn có thể restore lại database vào các thời điểm khác nhau mà chỉ cần sử dụng file snapshot này. Hạn chế của RDB là file snapshot chỉ được tạo sau 1 khoảng thời gian hoặc sau một lượng write-records nhất định, chẳng hạn như sau mỗi 5 phút hoặc sau 100 lần ghi thì Redis mới cập nhật vào file .RDB. Do đó, nếu Redis bị crash hoặc hệ thống gặp sự cố, các dữ liệu gần nhất sẽ bị mất.

AOF: Append to file. Redis sẽ liên tục lưu dữ liệu vào file log, chúng ta có thể cấu hình policy để Redis lưu log mỗi giây hoặc bất cứ khi nào có records mới sẽ đều lưu vào file log. Như vậy sẽ giảm thiểu được việc mất dữ liệu nếu xảy ra sự cố. Tuy nhiên phương pháp này sẽ dùng nhiều dung lượng Disk hơn RDB và sẽ ảnh hưởng tới Performance nếu hệ thống đang trong tình trạng High Load.

Mặc định khi cài đặt RDB đã được enable, chúng ta sẽ cấu hình thêm AOF như sau:

Mở file /etc/redis.conf và cấu hình các tham số như sau:

appendonly yes
appendfsync everysec

Cấu hình cho Redis tận dụng tối đa tài nguyên RAM

Mở file /etc/sysctl.conf và thêm vào cấu hình sau:

vm.overcommit_memory = 1

Restart hệ thống để option này có tác dụng.

Các bạn nên kiểm tra phần SWAP của hệ thống đã có chưa nhé, nếu chưa có cần phải add thêm lượng SWAP = RAM để đảm bảo Redis luôn có thể sử dụng tối đa tài nguyên của máy chủ.

Cấu hình Redis Master/Slave Repliation

Giả sử bạn đã cài đặt 2 server Redis như trên, bước tiếp theo cấu hình

Cấu hình tại Server Master

Tại server Master, các bạn đảm bảo là Redis listen trên IP mà bạn muốn cấu hình, mở file /etc/redis.conf và thêm vào cấu hình sau

bind 127.0.0.1 [your ip public]

Restart Redis

systemctl restart redis

Cấu hình tại Server Slave

Các bạn mở file /etc/redis.conf và thêm vào cuối file

slaveof [master server ip public] 6379

Restart Redis

systemctl restart redis

Nếu không muốn sử dụng IP public, các bạn có thể sử dụng IP private thay thế, khi đó thì cần cấu hình lại IP listen của Redis tại Server Master.

Sau khi restart, các bạn test thử như sau, tại Master Server, chúng ta insert thử 1 records

redis-cli set 'a' 1
OK

Tại Slave Server, hiển thị giá trị record vừa insert tại Master Server

redis-cli get 'a'
"1"

Bravo, Replication thành công, các bạn đã hoàn thành việc cấu hình Redis Replication giữa 2 server.

 

Rate This Article

Leave A Comment?