0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Sử Dụng RedisJSON: Quản Lý Dữ Liệu JSON Hiệu Quả Trong Redis

Đăng vào 2 tuần trước

• 2 phút đọc

Chủ đề:

Redis

Giới thiệu

RedisJSON là một module hỗ trợ quản lý dữ liệu JSON trong cơ sở dữ liệu Redis, cho phép người dùng lưu trữ, cập nhật và truy xuất các giá trị của JSON một cách linh hoạt và nhanh chóng. Với RedisJSON, dữ liệu được lưu trữ dưới dạng nhị phân trong cấu trúc cây, giúp truy cập nhanh vào các phần tử con mà không cần phải tải toàn bộ đối tượng JSON.

Lợi ích của RedisJSON

Khi sử dụng RedisJSON, bạn sẽ nhận thấy nhiều lợi ích so với phương pháp truyền thống là lưu trữ cấu trúc JSON dưới dạng chuỗi. Dưới đây là những điểm nổi bật:

  • Truy cập các giá trị con (subvalues): Người dùng có thể thêm, xoá, cập nhật hoặc truy xuất các giá trị con của một đối tượng JSON mà không cần phải xử lý toàn bộ đối tượng.
  • Index và tìm kiếm dữ liệu: RedisJSON tích hợp tốt với RedisSearch, cho phép bạn tạo chỉ mục và tìm kiếm dữ liệu JSON một cách hiệu quả.

Hướng Dẫn Cài Đặt Môi Trường

Để bắt đầu sử dụng RedisJSON, hãy cài đặt môi trường với Docker như sau:

bash Copy
# Chạy server Redis sử dụng Docker
docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest

# Truy cập vào server
docker exec redis-stack-server bash

# Mở Redis CLI (nếu không có, bạn có thể cài đặt Redis bằng Homebrew trên MAC)
redis-cli

Hướng Dẫn Thao Tác Với RedisJSON

Thêm Dữ Liệu JSON

bash Copy
# Thêm một đối tượng JSON
JSON.SET vendor:1 . '{"name":"Nguyen Van A","phone":333789741,"menu":[{"name":"Torta","price":4.5}]}'
# -> OK

Cập Nhập Dữ Liệu JSON

bash Copy
# Thêm trường mới vào đối tượng JSON
JSON.SET vendor:1 .location '{"address":"145 cách mạng tháng 8, quận Tân Bình, HCM","coordinates":[10.495804986,10.57408548]}'

# Cập nhật giá trị của trường
JSON.SET vendor:1 .location.address '"145 cách mạng tháng 8, phường 5, quận Tân Bình, HCM "'

Lấy Dữ Liệu JSON

bash Copy
# Lấy toàn bộ đối tượng JSON
JSON.GET vendor:1
# -> "{\"name\":\"Nguyen Van A\",\"phone\":333789741,...}"

# Lấy một giá trị cụ thể trong mảng
JSON.GET vendor:1 .menu[0]
# -> "{\"name\":\"Torta\",\"price\":4.5}"
JSON.GET vendor:1 .menu[0].price
# -> "4.5"

Thêm Đối Tượng Vào Mảng JSON

bash Copy
# Thêm một đối tượng mới vào mảng menu
JSON.ARRAPPEND vendor:1 .menu '{"name":"Burrito","price":11.5}'
# -> (integer) 2

Kết Hợp Với RedisSearch

RedisJSON cho phép bạn tạo chỉ mục để tìm kiếm dễ dàng hơn:

bash Copy
# Tạo schema tìm kiếm
FT.CREATE vendorIdx ON JSON PREFIX 1 vendor: SCHEMA $.name AS name TEXT $.location.address as address TEXT
# -> OK

# Tìm kiếm các vendor có tên chứa 'Van'
FT.SEARCH vendorIdx '@name:%Van%'
# -> 
# 1) (integer) 1
# 2) "vendor:1"
# 3) 1) "$"
#    2) "{\"name\":\"Nguyen Van A\",\"phone\":333789741,...}"

Kết Luận

RedisJSON mang đến một giải pháp mạnh mẽ để làm việc với dữ liệu JSON trong môi trường NoSQL, đồng thời dễ dàng tích hợp với RedisSearch để hỗ trợ tìm kiếm dữ liệu nhanh chóng và hiệu quả. Sử dụng RedisJSON không chỉ giúp tối ưu hóa quy trình quản lý dữ liệu mà còn nâng cao khả năng tìm kiếm, phù hợp với nhiều loại dự án.

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào