Đặt vấn đề.
Có 2 trường phái quản lý cơ sở dữ liệu là SQL và NOSQL, tùy thuộc vào nhu cầu mà chúng ta sử dụng từng loại cho trang web của mình cho hợp lý.
Để lưu trữ dữ liệu, chỉ cần SQL là đủ. Tìm kiếm cũng có thể sử dụng toán tử LIKE. Nhưng khi tập dữ liệu quá nhiều, LIKE ko còn là phương án tối ưu. Bạn cũng có thể sử dụng các module hỗ trợ, nhưng nó không thể cung cấp hết các tính năng mạnh mẽ như các công cụ fulltext search khác.
Lúc này, chúng ta cần đến Redissearch, một module của Redis cung cấp khả năng truy vấn, lập chỉ mục và khả năng tìm kiếm full-text mạnh mẽ.
Vậy Redis là gì?
Redis (REmote DIctionary Server) là một mã nguồn mở được dùng để lưu trữ dữ liệu có cấu trúc, có thể sử dụng như một database, bộ nhớ cache hay một message broker.
Với tính năng lưu trữ KEY-VALUE trên RAM, Redis cung cấp tốc độ xử lý nhanh, cũng như tính năng sắp xếp, query, backup,… tối ưu hiệu quả, đồng thời có thể nhân bản, chạy nhiều server cùng lúc.
Về Redissearch.
Như đã nói ở trên, Redisearch là một module của redis cung cấp khả năng truy vấn, lập chỉ mục và khả năng tìm kiếm full-text mạnh mẽ
Redisearch sử dụng “inverted indexes” cùng với “compressed” cho phép lập chỉ mục một cách nhanh chóng với chi phí bộ nhớ thấp. Nó được sinh ra để kế thừa và phát triển khả năng truy vấn manh mẽ của Redis.
Đã xong lý thuyết. Giờ đến phần cài đặt.
Cài đặt Redisearch
Đầu tiên, hãy cập nhật bộ đệm gói apt cục bộ.
$ sudo apt-get update
Cài đặt redis.
$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
$ sudo apt-get install redis
Check redis status
$ sudo systemctl status redis
Kết quả như sau, là bạn đã cái redis thành công.

Để kiểm tra xem Redis có hoạt động chính xác hay không, hãy kết nối với máy chủ bằng ứng dụng khách dòng lệnh
$ redis-cli
Kết quả:

Tiếp theo. hãy tạp stop server Redis để cài Redisseach
$ /etc/init.d/redis-server stop

Cài Redissearch
$ git clone --recursive https://github.com/RediSearch/RediSearch.git
$ cd RediSearch
Giờ hãy cài Make để chạy Redisearch
$ sudo apt-get install make
$ sudo make setup
$ make build
$ make run
Thế này là được nhé

Xong. hãy test thử nhé
Theo mặc định, Redis sẽ chỉ truy cập từ Localhost. Giờ cần cấu hình để có thể truy cập từ server của bạn.
Mở tệp cấu hình của Redis
$ sudo nano /etc/redis/redis.conf
Tìm và comment dòng này
# bind 127.0.0.1 -::1
Redis chạy mặc định trên cổng 6379, nên hãy nhớ mở cổng này ra nhé.
VD như trên AWS:
Giờ hãy cài password để truy cập
$ redis-cli
$ config set requirepass aaaaaaaaaaaaaa
$ auth aaaaaaaaaaaaaa
Như thế này là oke
Output
OK
Bonus: Bạn có thể set max memory để tăng giới hạn bộ nhớ được sử dụng của Redis
$ redis-cli
$ config set maxmemory 8GB
Kết luận
Trong bài này, bạn đã hiểu tổng quan về Redisseach, tại sao phải dùng nó, và cài đặt thành công.
Trong bài tiếp theo, chúng ta sẽ đến với công việc tiếp theo, là kết nối từ server Spring để làm việc với Redissearch. Hẹn gặp lại!
hay qua anh uiii