2014-09-12 16 views
5

Xin chào Tôi là người mới đến redis và muốn một số trợ giúp ở đây. Tôi đang sử dụng máy chủ java và sql 2008 và máy chủ redis. Để tương tác với redis tôi đang sử dụng jedis api cho java. Tôi biết rằng redis được sử dụng để lưu trữ những thứ dựa trên giá trị quan trọng. Mỗi khóa đều có giá trị.Làm thế nào để chuyển đổi bảng SQL thành dữ liệu Redis

Vấn đề Bối cảnh:

Tôi có một bảng tên "người sử dụng" mà các cửa hàng dữ liệu như id, tên, email, tuổi tác, quốc gia. Đây là lược đồ của bảng sql. Bây giờ bảng này có một số hàng (có nghĩa là một số dữ liệu là tốt). Bây giờ ở đây khóa chính của tôi là id và nó chỉ cho DB sử dụng của nó không sử dụng cho tôi trong ứng dụng.

Bây giờ trong sql tôi có thể chèn hàng mới, có thể cập nhật một hàng, có thể tìm kiếm bất kỳ người dùng nào, có thể xóa người dùng.

Tôi muốn lưu trữ dữ liệu bảng này thành redis. Sau đó, tôi cũng muốn thực hiện các thao tác tương tự trên redis, như tìm kiếm, chèn, xóa. Nhưng nếu tôi có một thiết kế tốt về "Lưu trữ thông tin này trong DB và Redis" thì các hoạt động này sẽ được thực hiện đơn giản. Hãy nhớ rằng tôi cũng có thể có nhiều bảng. Vì vậy, nên lưu trữ dữ liệu trong redis trên cơ sở bảng.

My Vấn đề

Bất kỳ thiết kế hoặc thông tin bạn có thể tư vấn cho tôi rằng làm thế nào tôi có thể chuyển đổi dữ liệu DB để Redis và thực hiện tất cả các hoạt động. Tôi hỏi điều này vì tôi biết Facebook cũng đang sử dụng redis để lưu trữ dữ liệu. Sau đó, cách chúng lưu trữ dữ liệu.

Mọi trợ giúp sẽ rất đánh giá cao.

+0

Tôi nghĩ bạn cần đọc tài liệu ReDis - có vẻ như rất nhiều. –

+0

Nếu bạn bao gồm lược đồ/trường bạn có và truy vấn bạn sử dụng hoặc đã lên kế hoạch, thì có thể cung cấp câu trả lời chính xác hơn nhiều. Thiết kế nên được thực hiện với một số khái niệm về cách sử dụng. – jpj

Trả lời

1

Đây là câu hỏi rất khó trả lời vì có nhiều cách bạn có thể làm.

Cách tốt nhất theo ý kiến ​​của tôi là sử dụng băm. Về cơ bản, đây là một loại khóa-giá trị lồng nhau. Vì vậy, khóa của bạn sẽ khớp với mã băm để bạn có thể lưu trữ tên người dùng, mật khẩu, v.v.

Một vấn đề là lập chỉ mục, bạn cần có ID được lưu trong khóa. Ví dụ mỗi người dùng sẽ cần phải có một chính như: USER:21414

Điều thứ hai, trừ khi bạn muốn nhìn vào lệnh như KEYS hay SCAN bạn sẽ phải duy trì danh sách của riêng bạn của người sử dụng để lặp, chỉ khi bạn cần Để làm việc đó. Đối với điều này, bạn sẽ cần phải nhìn vào danh sách hoặc bộ sắp xếp.

Thành thật mà nói, không có câu trả lời đúng cho câu hỏi này, dữ liệu kiểu SQL không ánh xạ tới khóa-giá trị theo bất kỳ cách thực tế nào. Bạn thường phải tự làm nhiều việc hơn.

Tôi khuyên bạn nên đọc nhiều nhất có thể và sẽ bắt đầu tại đây http://redis.io/commands và tại đây http://redis.io/documentation.

Tôi không có kinh nghiệm sử dụng Jedis nên tôi không thể trợ giúp về phía đó. Nếu bạn muốn một ví dụ tôi có một trang web mạng xã hội mã nguồn mở sử dụng Redis vì nó là kho dữ liệu duy nhất. Bạn có thể xem mã để nhận một số ý tưởng https://github.com/pjuu/pjuu/blob/master/pjuu/auth/backend.py. Nó sử dụng Python nhưng Redis là một điều dễ sử dụng ở khắp mọi nơi sẽ không có nhiều sự khác biệt.

Chỉnh sửa: Trang web của tôi không còn sử dụng Redis nữa. Bạn cần kiểm tra chi nhánh cũ hơn như 0.4 hoặc 0.3 :)

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