2011-04-12 44 views
7

Có cách nào dễ dàng để biến một bảng mysql thành một redis tương đương?Có cách nào dễ dàng để biến một bảng MySQL thành một Redis tương đương?

Tôi có một bảng myisam trong MySQL mà về cơ bản được sử dụng như một kho khóa giá trị mà tôi muốn "di chuyển" sang Redis để nó sẽ siêu nhanh. Có cách nào làm dễ hơn không?

Cảm ơn.

+0

Câu hỏi có vẻ như hoạt động giả kim trong nhiều năm trước :-) – zerkms

Trả lời

8

Cách đơn giản nhất là để có được một bãi chứa của bảng mysql và phân tích các mục nhập dữ liệu có liên quan vào các lệnh redis.

Ví dụ, một bãi chứa dữ liệu sẽ tạo ra một cái gì đó như sau:

CREATE TABLE carousel(
    id int(11), 
    path varchar(200), 
    title varchar(200), 
    comments varchar(200) 
); 

INSERT INTO carousel VALUES (3,'7.jpg','Inspirar','inspiration'); 
INSERT INTO carousel VALUES (4,'d.jpg','Pilotar','pilotar'); 
INSERT INTO carousel VALUES (5,'8.jpg','Sentir','sentir'); 
INSERT INTO carousel VALUES (6,'6.jpg','Volar','volar'); 

Trước tiên, bạn cần phải quyết định về cơ cấu quan trọng bạn muốn sử dụng trong redis. Một ý tưởng là sử dụng bảng làm khóa và lưu trữ các id của mỗi hàng trong một tập hợp.

Đối với mỗi bảng, bạn cần tạo khóa sẽ giữ id, cho phép gọi chúng là idx: $ table. Sử dụng ví dụ của chúng tôi, chúng ta sẽ tạo idx: carousel.

Khi phân tích cú pháp tệp, chúng tôi sẽ lấy các id từ cột giá trị đầu tiên (trong trường hợp này) và lưu trữ chúng trong idx: băng chuyền. Ngoài ra chúng tôi sẽ lưu trữ mỗi INSERT như một băm. Để làm điều này, chúng tôi đặt tên cho băng chuyền chính: $ id và sử dụng lệnh hmset. INSERT đầu tiên trong ví dụ này sẽ được lưu trữ như thế này:

hmset băng chuyền: 3 con đường '7.jpg' tiêu đề 'Inspirar' bình luận 'cảm hứng'

Nó có thể có vẻ phức tạp hơn nó thực sự là, nhưng nó khá đơn giản. Nếu bạn nghĩ rằng đó là một chút quá khó khăn tôi sẵn sàng để viết một cho bạn.

Hy vọng điều đó sẽ hữu ích.

+0

cách phân tích cú pháp tệp? – Jagrati

0

Tôi không biết bất kỳ tiện ích nào sẽ tự động thực hiện một việc như vậy, bạn có thể sẽ phải tự viết. Bạn có thể nhận thư viện khách hàng cho ngôn ngữ ưa thích của mình tại http://redis.io/clients.

Nghe có vẻ giống như một nhiệm vụ khá đơn giản, nhưng sự dễ dàng sẽ phụ thuộc hoàn toàn vào sự thoải mái và kinh nghiệm của bạn với ngôn ngữ bạn viết nó trong.

0

Tạo danh sách Redis của mỗi cột và đặt tất cả dữ liệu của từng cột trong danh sách đó. và tạo băm để lưu trữ danh sách của mỗi bảng. ví dụ. một bảng có cột email, id, tên người dùng, họ sẽ có thể được lưu trữ trong redis bằng cách tạo danh sách email, id, tên người dùng và họ và một băm sẽ chứa email, id, tên người dùng.

Các vấn đề liên quan