Tips nhỏ khi làm việc với key Redis
TIL
618
White

Nguyễn Thế Huy viết ngày 02/04/2018

Như mọi người đều biết thì Redis là một NoSQl lưu trữ dữ liệu dưới dạng (key, value) mạnh mẽ và nổi tiếng, đặc biệt ở tốc độ truy xuất nhanh (do truy xuất data trên RAM), nhưng vẫn đảm bảo được dữ liệu không bị mất mát (do có cơ chế sao lưu dữ liệu xuống ổ cứng). Tuy nhiên vì lưu dữ liệu dạng (key, value), Redis rõ ràng không được thiết kế để chúng ta có thể search dữ liệu theo value như khi làm việc với SQL. Bài toán đặt ra là:

Lưu 1 bản ghi user xuống dưới Redis; bản ghi bao gồm id, phone, name. Cho phép tìm kiếm dữ liệu theo số điện thoại.

Thông thường ta sẽ lưu key redis là: user:id với value là phonename. Muốn search theo phone, ta lưu thêm một key:
user:phone với value là id của bản ghi.

Vậy cách làm sẽ là:

hmset user:1 phone 0123456789 name huy
set user:0123456789 1

Chú ý nên dùng hmset để lưu thay vì encode cả object r lưu vào bằng set để có hiệu năng tốt hơn.

Khi tìm kiếm, ta sẽ dùng hàm keys hoặc scan, ví dụ:

keys *012345*

Với mỗi key tương ứng của kết quả trên, ta chạy:
get key

là có id tương ứng. Việc còn lại khá đơn giản, chạy hgetall để lấy dữ liệu toàn bản ghi:

hgetall user:id

Với cách trên ta có thể nhanh chóng truy xuất được dữ liệu bản ghi theo giá trị với Redis.

Đây chỉ là 1 tips nhỏ lưu ý khi làm việc với redis., cám ơn các bạn đã theo dõi.

NguyenTheHuy 02-04-2018

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Nguyễn Thế Huy

6 bài viết.
29 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
28 8
Hi cả nhà, đây là bài viết đầu tiên của mình trên Kipalog nên có gì không hay mong các bạn thông cảm :D Realtime là gì ? Như chúng ta đều đã biế...
Nguyễn Thế Huy viết 10 tháng trước
28 8
White
25 5
Xin chào mọi người :D Trong bài viết này mình sẽ trình bày một cách cơ bản để ứng dụng kỹ thuật Http Live Streaming (HLS) để play video trên web, ...
Nguyễn Thế Huy viết 6 tháng trước
25 5
White
4 0
Trong bài viết nho nhỏ này mình xin chia sẻ một case mà mình mới gặp trong quá trình làm việc với Mysql, hy vọng có thể giúp được các bạn gặp phải ...
Nguyễn Thế Huy viết 11 ngày trước
4 0
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 3 tháng trước
0 2
White
20 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 2 năm trước
20 1
White
7 0
Có một tuyên ngôn cho chủ nghĩa tối giản trong ngành phần mềm. Link: http://minifesto.org/ Fight for Pareto's law, look for the 20% of effort th...
Cẩm Huỳnh viết 9 ngày trước
7 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
29 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!