Redis lưu trữ các khóa trỏ đến các giá trị. Các khóa có thể là bất kỳ giá trị nhị phân nào có kích thước hợp lý (sử dụng các chuỗi ASCII ngắn được khuyến nghị cho mục đích đọc và gỡ lỗi). Giá trị là một trong năm loại dữ liệu Redis bản địa.
1.strings - một chuỗi các byte an toàn nhị phân lên tới 512 MB
2.hash - tập hợp các cặp giá trị chính
3.lists - bộ sưu tập các chuỗi theo thứ tự chèn
4. bộ - một bộ chuỗi độc đáo không có thứ tự
5. bộ tập hợp - một tập hợp các chuỗi duy nhất được sắp xếp theo cách tính điểm do người dùng xác định
Dây
Chuỗi Redis là một chuỗi các byte.
Các chuỗi trong Redis là an toàn nhị phân (có nghĩa là chúng có độ dài đã biết không được xác định bởi bất kỳ ký tự kết thúc đặc biệt nào), vì vậy bạn có thể lưu trữ mọi thứ lên tới 512 megabyte trong một chuỗi.
Chuỗi là khái niệm "kho giá trị chính". Bạn có một khóa trỏ đến một giá trị, trong đó cả khóa và giá trị là chuỗi văn bản hoặc chuỗi nhị phân.
Đối với tất cả các hoạt động có thể có trên chuỗi, hãy xem
http://redis.io/commands/#opes
Băm
Băm Redis là một tập hợp các cặp giá trị chính.
Hàm băm Redis chứa nhiều cặp giá trị khóa, trong đó mỗi khóa và giá trị là một chuỗi. Redis băm không hỗ trợ trực tiếp các giá trị phức tạp (nghĩa là bạn không thể có trường băm có giá trị của danh sách hoặc tập hợp hoặc hàm băm khác), nhưng bạn có thể sử dụng các trường băm để trỏ đến các giá trị phức tạp cấp cao nhất khác. Hoạt động đặc biệt duy nhất bạn có thể thực hiện trên các giá trị trường băm là tăng / giảm nguyên tử của nội dung số.
Bạn có thể nghĩ về một Redis băm theo hai cách: như một đại diện đối tượng trực tiếp và như một cách để lưu trữ nhiều giá trị nhỏ gọn.
Đại diện đối tượng trực tiếp là đơn giản để hiểu. Các đối tượng có tên (khóa của hàm băm) và một tập hợp các khóa bên trong có giá trị. Xem ví dụ dưới đây cho, tốt, một ví dụ.
Lưu trữ nhiều giá trị nhỏ bằng cách sử dụng hàm băm là một kỹ thuật lưu trữ dữ liệu khổng lồ Redis thông minh. Khi hàm băm có số lượng trường nhỏ (~ 100), Redis tối ưu hóa hiệu quả lưu trữ và truy cập của toàn bộ hàm băm. Tối ưu hóa lưu trữ băm nhỏ của Redis làm tăng một hành vi thú vị: sẽ hiệu quả hơn khi có 100 băm với 100 khóa và giá trị bên trong thay vì có 10.000 khóa cấp cao nhất trỏ đến giá trị chuỗi. Sử dụng băm Redis để tối ưu hóa lưu trữ dữ liệu của bạn theo cách này đòi hỏi phải có thêm chi phí lập trình để theo dõi nơi dữ liệu kết thúc, nhưng nếu lưu trữ dữ liệu của bạn dựa trên chuỗi nguyên thủy, bạn có thể tiết kiệm rất nhiều chi phí bộ nhớ bằng một thủ thuật kỳ lạ này.
Đối với tất cả các hoạt động có thể có trên băm, hãy xem tài liệu băm
Danh sách
Danh sách Redis hoạt động như danh sách liên kết.
Bạn có thể chèn vào, xóa từ và duyệt qua danh sách từ đầu hoặc đuôi của danh sách.
Sử dụng danh sách khi bạn cần duy trì các giá trị theo thứ tự chúng được chèn. (Redis không cung cấp cho bạn tùy chọn để chèn vào bất kỳ vị trí danh sách tùy ý nào nếu bạn cần, nhưng hiệu suất chèn của bạn sẽ giảm nếu bạn chèn xa vị trí bắt đầu của bạn.)
Danh sách Redis thường được sử dụng như hàng đợi của nhà sản xuất / người tiêu dùng. Chèn các mục vào danh sách sau đó bật các mục từ danh sách. Điều gì xảy ra nếu người tiêu dùng của bạn cố gắng bật từ một danh sách không có yếu tố? Bạn có thể yêu cầu Redis đợi một phần tử xuất hiện và trả lại cho bạn ngay lập tức khi nó được thêm vào. Điều này biến Redis thành một hệ thống thông báo hàng đợi / sự kiện / công việc / nhiệm vụ / thông báo thời gian thực.
Về cơ bản, bạn có thể xóa các phần tử khỏi một trong danh sách, cho phép mọi danh sách được coi là ngăn xếp hoặc hàng đợi.
Bạn cũng có thể duy trì danh sách có độ dài cố định (bộ sưu tập được giới hạn) bằng cách cắt danh sách của bạn thành một kích thước cụ thể sau mỗi lần chèn.
Đối với tất cả các hoạt động có thể có trong danh sách, xem tài liệu danh sách
Bộ
Redis bộ là, tốt, bộ.
Một bộ Redis chứa các chuỗi Redis không có thứ tự duy nhất trong đó mỗi chuỗi chỉ tồn tại một lần trên mỗi bộ. Nếu bạn thêm cùng một yếu tố mười lần vào một bộ, nó sẽ chỉ hiển thị một lần. Các bộ rất tốt cho việc lười biếng đảm bảo một cái gì đó tồn tại ít nhất một lần mà không phải lo lắng về các yếu tố trùng lặp tích lũy và lãng phí không gian. Bạn có thể thêm cùng một chuỗi bao nhiêu lần tùy thích mà không cần kiểm tra xem nó có tồn tại không.
Các bộ rất nhanh để kiểm tra thành viên, chèn và xóa các thành viên trong bộ.
Bộ có hoạt động thiết lập hiệu quả, như bạn mong đợi. Bạn có thể lấy liên kết, giao nhau và sự khác biệt của nhiều bộ cùng một lúc. Kết quả có thể được trả về cho người gọi hoặc kết quả có thể được lưu trữ trong một bộ mới để sử dụng sau.
Các bộ có quyền truy cập thời gian liên tục để kiểm tra thành viên (không giống như danh sách) và Redis thậm chí có loại bỏ và trả lại thành viên ngẫu nhiên thuận tiện ("bật một yếu tố ngẫu nhiên từ bộ") hoặc trả lại thành viên ngẫu nhiên mà không thay thế ("cung cấp cho tôi 30 người dùng duy nhất ngẫu nhiên ") hoặc với sự thay thế (" đưa cho tôi 7 thẻ, nhưng sau mỗi lần chọn, hãy đặt lại thẻ để có thể lấy mẫu lại ").
Đối với tất cả các hoạt động có thể trên bộ, xem tài liệu bộ .
Bộ sắp xếp
Redis bộ sắp xếp là bộ có thứ tự do người dùng xác định.
Để đơn giản, bạn có thể nghĩ về một tập hợp được sắp xếp như một cây nhị phân với các phần tử duy nhất. (Redis bộ được sắp xếp thực sự là danh sách bỏ qua .) Thứ tự sắp xếp của các yếu tố được xác định bởi điểm số của từng yếu tố.
Bộ sắp xếp vẫn là bộ. Các yếu tố chỉ có thể xuất hiện một lần trong một bộ. Một phần tử, cho mục đích duy nhất, được xác định bởi nội dung chuỗi của nó. Chèn phần tử "apple" với điểm số sắp xếp 3, sau đó chèn phần tử "apple" với điểm số sắp xếp 500 kết quả trong một phần tử "apple" với điểm số sắp xếp 500 trong tập hợp được sắp xếp của bạn. Các bộ chỉ duy nhất dựa trên Dữ liệu, không dựa trên các cặp (Điểm, Dữ liệu).
Đảm bảo rằng mô hình dữ liệu của bạn phụ thuộc vào nội dung chuỗi chứ không phải điểm số của phần tử cho tính duy nhất. Điểm số được phép lặp lại (hoặc thậm chí bằng 0), nhưng, lần cuối cùng, các phần tử tập hợp chỉ có thể tồn tại một lần trên mỗi tập được sắp xếp. Ví dụ: nếu bạn cố lưu trữ lịch sử của mỗi lần đăng nhập của người dùng dưới dạng tập hợp được sắp xếp bằng cách đặt điểm số kỷ nguyên của thông tin đăng nhập và giá trị id người dùng, cuối cùng bạn sẽ chỉ lưu trữ kỷ nguyên đăng nhập cuối cùng cho tất cả người dùng của bạn. Tập hợp của bạn sẽ tăng theo kích thước của cơ sở người dùng của bạn chứ không phải kích thước đăng nhập * cơ sở người dùng mong muốn của bạn.
Các yếu tố được thêm vào thiết lập của bạn với điểm số. Bạn có thể cập nhật điểm của bất kỳ yếu tố nào bất cứ lúc nào, chỉ cần thêm lại yếu tố đó với điểm mới. Điểm số được biểu thị bằng cách nhân đôi dấu phẩy động, vì vậy bạn có thể chỉ định mức độ chi tiết của dấu thời gian có độ chính xác cao nếu cần. Nhiều yếu tố có thể có cùng số điểm.
Bạn có thể lấy các phần tử theo một vài cách khác nhau. Vì mọi thứ đã được sắp xếp, bạn có thể yêu cầu các yếu tố bắt đầu ở điểm thấp nhất. Bạn có thể yêu cầu các yếu tố bắt đầu từ điểm số cao nhất ("ngược lại"). Bạn có thể yêu cầu các yếu tố theo điểm số sắp xếp của chúng theo thứ tự tự nhiên hoặc ngược lại.
Đối với tất cả các hoạt động có thể có trên các tập đã sắp xếp, xem tài liệu tập đã sắp xếp.