2

I'm writing a small Python CGI script that captures the User-Agent, parses the OS, browser name and version, maps it to a database, and returns a device grade (integer). Since this is only one table, it's a pretty simple operation, but I will likely have substantial traffic (10,000+ hits a day, potentially scaling much higher in the near and far future).

Which noSQL database would you recommend for this sort of application? I would also like to build an admin interface which allows for manual input and is searchable. I'm fairly new to Python and completely new to noSQL, and I'm having trouble finding any good info or libraries. Any suggestions?

1
  • 2
    10000 queries per day is not substantial, for example Redis can answer >50000 queries per second. Figure out what features you need and decide on that. Commented Jun 3, 2011 at 18:02

3 Answers 3

3

I suggest Redis. It probably fits well for what you want to do. And it is fast but still simple to set up and use.

Sign up to request clarification or add additional context in comments.

Comments

2

It depends on your use-case. Are you planning on caching the records temporarily or do you want the records to persist? If the former, Redis would be the best choice because of its speed. If the latter, it would be better to choose either CouchDB or MongoDB because they can handle large datasets.

2 Comments

Thanks for your reply. Can you explain how and why I would want to do one or the other? The records won't likely change very often. For instance, an iPad2 would make a request and I would then return a grade of 11, an iPhone4 would hit and I'd return a 10, etc.
If there is a relatively fixed number of records and you're sure that you have the memory for them, then Redis is probably the best choice.
1

I've had great luck with CouchDB. The couchdb-python module is pretty easy to use and is under very active development.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.