[16:48:04] <aclark> j00bar: heh ok i want to start pushing form results into redis, fields include firstname, lastname, email, and X number of trove classifiers selected. i'm still a bit confused by the key syntax and what i do with it later. i know i can create a key alex.clark:aclark@aclark.net and that's as far as i've gotten ;-)
[16:48:26] <aclark> x number of trove classifiers sounds like a list
[16:48:44] <aclark> each key needs to be associated with that list somehow
[16:49:02] <j00bar> aclark: you've got a couple of options and it really depends on how you want to/need to use your data.
[16:49:43] <j00bar> key structure is entirely up to you. one thing i'd encourage you to do is to use hierarchical key structure and use a easily identifiable delimiter
[16:49:47] <aclark> j00bar: for now i just want to collect it, eventually i'll be checking the data when people try to sign in to a beta program.
[16:53:59] <j00bar> again, depends on the data you want.
[16:54:12] <j00bar> pipelining 6 queries for one record is pretty damn fast.
[16:54:29] <j00bar> json serialization/deserialization - also pretty damn fast.
[16:54:38] <j00bar> but each method provides different flexibility
[16:54:55] <aclark> well in python i'd have users['alex.clark']['email'] = 'aclark@aclark.net' and users['alex.clark']['troves'] = ['Programming :: Python', 'Animals :: Cats'] and so on
[16:54:56] <j00bar> serializing gives you more flexibility with structure and you can add other keys later easily
[16:55:17] <j00bar> breaking down into multiple keys gives you faster access to individual items without having to query everything
[17:00:09] <j00bar> if somebody wants to find all people who have "gtk" and "education" you can use the set comparison operations to see if a given trove set applies
[17:00:41] <j00bar> so if that's an operation you care about, breaking out your structures would probably make more sense
[17:00:48] <j00bar> versus obtaining *all* records and parsing them in python