Python で Redis を触ってみました。オートインクリメントやインデックス用のkeyを使うイディオムがある。
import json import redis r = redis.Redis() def create_user(name, auth): uid = r.incr('global:next_uid') # ユニークなIDを取得 return put_user(uid, name, auth) def get_user(uid): value = r.get('user:%s' % uid) if value: return json.loads(value) def put_user(uid, name, auth): user = {'uid': uid, 'name': name, 'auth': auth} r.set('user:%s' % uid, json.dumps(user)) r.set('index:user:auth:%s' % auth, uid) # auth -> uid を引くため return user def get_user_by_auth(auth): uid = r.get('index:user:auth:%s' % auth) if not uid: return return get_user(uid) a = create_user('wozozo', 'xxxxxxxx') b = get_user(a['uid']) assert a == b put_user(a['uid'], b['name'], 'yyyyyyyy') c = get_user_by_auth('yyyyyyyy')