Redis là gì? Nguyên tắc hoạt động của Redis
14/04/2022 15:56 pm | Lượt xem : 3290
Redis là gì? Nguyên tắc hoạt động của Redis như thế nào? Có lẽ đây là câu hỏi của một người dùng đang tìm kiếm thông tin về Plugin này. Với một chương trình chạy với mã nguồn mở thì có lẽ sẽ có rất nhiều điều để nói về nó!…
Contents
Khái niệm Redis là gì? Nguyên tắc hoạt động của Redis
Bạn có thể hiểu Redis là một cơ sở dữ liệu khóa với mã nguồn mở, lưu trữ cấu trúc dữ liệu trong bộ nhớ được sử dụng làm cơ sở dữ liệu.
Dữ liệu trong Redis bao gồm hai phần: khóa và giá trị. Redis chấp nhận các khóa ở nhiều định dạng (như chuỗi, danh sách, tập hợp,…), các hoạt động có thể được thực hiện trên máy chủ và giảm khối lượng công việc của máy khách.
Vì vậy nó thường được dùng để quản lý bộ nhớ cache và tăng tốc độ các ứng dụng website. Để đạt được hiệu quả cao nhất, Redis nên được làm việc với tập dữ liệu trong bộ nhớ.
Tùy thuộc vào từng trường hợp mà bạn có thể duy trì dữ kiệu bằng cách định kỳ kết xuất tập dữ liệu vào đĩa hoặc bằng cách thêm từng lệnh vào nhật ký trên đĩa.
Bênh cạnh đó, Redis hỗ trợ sao chép không đồng bộ, với tính năng đồng bộ hóa không chặn nhanh chóng và tự động kết nối lại với đồng bộ hóa một phần khi tách mạng.
Tenten bán hosting & server với ưu đãi đặc biệt trong tháng này: https://tenten.vn/vi/hosting/gen-hosting
Các kiểu dữ liệu Redis hỗ trợ
Redis có một tập hợp các kiểu dữ liệu tương đối phong phú khi so sánh với nhiều kho dữ liệu giá trị khóa, lưu giữ cơ sở dữ liệu của nó hoàn toàn trong bộ nhớ, chỉ sử dụng đĩa để lưu trữ lâu dài.
Dưới đây là những kiểu cấu trúc dữ liệu mà Redis hỗ trợ:
#1 Strings
Chuỗi là loại dữ liệu Redis căn bản nhất, nó là an toàn nhị phân. Điều này có nghĩa là một chuỗi Redis có thể chứa bất kỳ một loại dữ liệu nào, chẳng hạn như hình ảnh hoặc đối tượng Ruby được tuần tự hóa…
Về giá trị chuỗi, nó có thể có độ dài tối đa 512 MB
#2 Lists
Redis list là danh sách chuỗi được sắp xếp theo trình tự chèn. Có thể thêm các phần tử vào Redis List bằng cách đẩy các phần tử mới lên đầu (bên trái) hoặc ở đuôi (bên phải) danh sách.
Lệnh LPUSH chèn một phần tử mới vào đầu, trong khi RPUSH chèn một phần tử mới vào đuôi. Một danh sách mới được tạo khi một trong các thao tác này được thực hiện với một khóa trống. Tương tự, khóa sẽ bị xóa khỏi không gian khóa nếu một thao tác với danh sách sẽ làm trống danh sách.
Đây là những từ khóa rất tiện dụng vì tất cả các lệnh trong danh sách sẽ hoạt động giống hệt như chúng được gọi với một danh sách trống nếu được gọi với một khóa không tồn tại làm đối số.
Một số ví dụ về hoạt động của danh sách và danh sách kết quả:
Các tính năng chính của Redis Lists từ quan điểm về độ phức tạp của thời gian là hỗ trợ chèn và xóa thời gian liên tục của các phần tử gần đầu và đuôi, ngay cả với hàng triệu mục được chèn.
Việc truy cập các phần tử rất nhanh ở gần các cực của danh sách nhưng lại chậm nếu bạn thử truy cập vào phần giữa của một danh sách rất lớn, vì đó là một phép toán O (N)
#3 Sets
Redis Sets là một tập hợp các Chuỗi không có thứ tự. Có thể thêm, bớt và kiểm tra sự tồn tại của các phần tử với thời gian không đổi bất kể số phần tử chứa bên trong Tập hợp.
Với sets sẽ có đặc tính mong muốn là không cho phép các phần tử lặp lại. Việc thêm cùng một phần tử nhiều lần sẽ dẫn đến một tập hợp có một bản sao duy nhất của phần tử này.
Thực tế, điều này có nghĩa là việc thêm một thành viên không yêu cầu kiểm tra nếu tồn tại thì thao tác thêm.
#4 Hashes
Redis Hashes là bản đồ giữa các trường chuỗi và giá trị chuỗi, vì vậy chúng là kiểu dữ liệu hoàn hảo để đại diện cho các đối tượng.
Mặc dù Hashes được sử dụng chủ yếu để đại diện cho các đối tượng, chúng có khả năng lưu trữ nhiều phần tử, vì vậy bạn cũng có thể sử dụng Hashes cho nhiều tác vụ khác. Ngoài ra, một hàm Hashes có thể lưu trữ tối đa 2 ^ 32 – 1 cặp giá trị trường (hơn 4 tỷ).
#5 Sorted Sets
Redis Sorted Sets, tương tự như Redis Sets, là tập hợp chuỗi không lặp lại.
Sự khác biệt là mọi phần tử của Sorted Set được sắp xếp được liên kết với một điểm số, được sử dụng để giữ cho nó sắp xếp theo thứ tự, từ điểm nhỏ nhất đến điểm lớn nhất. Mặc dù các thành viên là duy nhất, điểm số có thể được lặp lại.
Với Sorted Sets, bạn có thể tùy ý thêm, bớt hoặc cập nhật các phần tử của chúng một cách nhanh chóng. Vì các phần tử được lưu trữ theo thứ tự và không được sắp xếp sau đó, bạn cũng có thể nhận được phạm vi theo điểm hoặc theo thứ hạng một cách rất nhanh.
Ngoài ra Sorted Set đã được sắp xếp một cách thông minh gồm các phần tử không lặp lại, giúp bạn có thể nhanh chóng truy cập mọi thứ bạn cần như: các phần tử theo thứ tự, kiểm tra sự tồn tại nhanh chóng, truy cập nhanh vào các phần tử ở giữa …
Tóm lại, với Sorted Sets, bạn có thể thực hiện nhiều tác vụ với hiệu suất tuyệt vời mà thực sự khó có thể mô hình hóa trong các loại cơ sở dữ liệu khác.
#6 Bitmap và HyperLogLogs
Redis cũng hỗ trợ Bitmap và HyperLogLogs thực sự là các kiểu dữ liệu dựa trên kiểu cơ sở Chuỗi, nhưng có ngữ nghĩa riêng của chúng.
#7 Streams
Redis Streams là một cấu trúc dữ liệu hoạt động giống như một bản ghi chỉ dành cho phần thêm. Bên cạnh đó Streams rất hữu ích để ghi lại các sự kiện theo thứ tự xảy ra.
#8 Geospatial indexes
Redis cung cấp các chỉ mục không gian địa lý, rất hữu ích cho việc tìm kiếm các vị trí trong bán kính địa lý nhất định. Dữ liệu này sẽ được lưu trữ dưới dạng các cặp tọa độ nhất định.
Sorted Sets đã sắp xếp được điền là sử dụng một kỹ thuật gọi là Geohash. Các bit Vĩ độ và Kinh độ được xen kẽ để tạo thành một số nguyên 52 bit duy nhất.
Định dạng này cho phép truy vấn hộp giới hạn và bán kính bằng cách chọn 1 + 8 khu vực cần thiết để bao phủ toàn bộ hình dạng và loại bỏ các phần tử bên ngoài nó.
Các khu vực được kiểm tra bằng cách tính toán phạm vi của hộp được bao phủ, loại bỏ đủ bit khỏi phần ít quan trọng hơn của điểm tập hợp đã sắp xếp và tính toán phạm vi điểm để truy vấn trong tập hợp đã sắp xếp cho từng khu vực.
Bài viết liên quan:
Plugin wordpress là gì? Tổng hợp 10 plugin free nên dùng
Web hosting là gì? 6 điều cần biết về web hosting
Hướng dẫn 5 cách tạo website cá nhân miễn phí