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.
Leave A Comment?