pythonでredisをさわる練習

文字列の扱いと数値の扱いを適当にさわってみてたのでメモを残しとく

# coding=utf-8
import redis
import time

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

# 文字列をセット
r.set('name_1', 'brainstorm')
# 数値をセット
r.set('rank_1', 100)

# 存在を確認
assert(r.exists('name_1'))
assert(r.exists('rank_1'))

# 取得
assert(r.get('name_1') == 'brainstorm')
assert(r.get('rank_1') == '100')

# 複数取得
values = r.mget(['name_1', 'rank_1'])
assert(values == ['brainstorm', '100'])

# 型を調べる
assert(r.type('name_1') == 'string')
assert(r.type('rank_1') == 'string')

# パターンにマッチするキー一覧を取得
keys = r.keys('*_1')
assert(len(keys) == 2)

# 格納されているキーをランダムで取得
random_key = r.randomkey()
assert(random_key in ['name_1', 'rank_1'])

# 現在のキーの数
key_size = r.dbsize()
assert(key_size == 2)

# キーの有効期限を取得する
ttl = r.ttl('name_1')
assert(ttl == -1)

# キーの有効期限を設定する
r.expire('name_1', 1000)
ttl = r.ttl('name_1')
assert(ttl == 1000)
time.sleep(1)
ttl = r.ttl('name_1')
assert(ttl == 999)


# 数値をインクリメント
r.incr('rank_1')
assert(r.get('rank_1') == '101')

# 数値をデクリメント
r.decr('rank_1')
assert(r.get('rank_1') == '100')

# 数値を指定した数だけインクリメント
r.incr('rank_1', 3)
assert(r.get('rank_1') == '103')

# 数値を指定した数だけデクリメント
r.decr('rank_1', 100)
assert(r.get('rank_1') == '3')

# 文字列に文字列を追加
r.append('name_1', '_updated')
assert(r.get('name_1') == 'brainstorm_updated')

# 部分文字列を取得
s = r.substr('name_1', 0, 9)
assert(s == 'brainstorm')