pythonでredisをさわる練習 4

今日はハッシュ

# coding=utf-8
import redis

r = redis.StrictRedis(host='localhost', port=6379, db=0)


r.delete('user1')

# hset: ハッシュのキーに値をセットする
r.hset('user1', 'name', 'taro')

# hget: ハッシュのキーに紐付いている値を取得する
user1 = r.hget('user1', 'name')
assert(user1 == 'taro')

# hmset: hsetをまとめて行う
r.hmset('user1', {'age': 20, 'tel': '08011111111'})

# hmget: hgetをまとめて行う
user1 = r.hmget('user1', ['name', 'age', 'tel'])
assert(user1 == ['taro', '20', '08011111111'])

# hincr: キーの値をインクリメントする
r.hincrby('user1', 'age')
assert(r.hget('user1', 'age') == '21')
r.hincrby('user1', 'age', 2)
assert(r.hget('user1', 'age') == '23')

# キーの存在確認
exists_name = r.hexists('user1', 'name')
assert exists_name

# キーの削除
r.hdel('user1', 'tel')
exists_tel = r.hexists('user1', 'tel')
assert not exists_tel

# 辞書の要素数を取得
hash_length = r.hlen('user1')
assert 2 == hash_length

# 辞書のキーを取得
hash_keys = r.hkeys('user1')
assert hash_keys == ['name', 'age']

# 辞書の値を取得
hash_vals = r.hvals('user1')
assert hash_vals == ['taro', '23']

# 辞書そのものを取得
user1 = r.hgetall('user1')
assert user1 == {'name': 'taro', 'age': '23'}