2011年6月30日木曜日

redis-pyでSorted Setで値の最下位からの順位を取得する

redis-pyでSorted Setで値の最下位からの順位を取得するには、以下のコードのようにzrevrankを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
# Sorted Setで値の最下位からの順位を取得する
print(rc.zrevrank('ss1', '商品3'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月28日火曜日

redis-pyでSorted Setで降順指定の範囲の値を取得する

redis-pyでSorted Setで降順指定の範囲の値を取得するには、以下のコードのようにzrevrangeを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
# Sorted Setで降順指定の範囲の値を取得する
for value in rc.zrevrange('ss1', 0, 1):
 print value

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月26日日曜日

redis-pyでSorted Setで指定範囲のスコアの値を削除する

redis-pyでSorted Setで指定範囲のスコアの値を削除するには、以下のコードのようにzremrangebyscoreを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
rc.zadd('ss1', '商品4', 400)
rc.zadd('ss1', '商品5', 500)
# Sorted Setで指定範囲のスコアの値を削除する
rc.zremrangebyscore('ss1', 250, 500)
for value in rc.zrange('ss1', 0, -1):
 print value

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月24日金曜日

redis-pyでSorted Setで指定範囲の順位の値を削除する

redis-pyでSorted Setで指定範囲の順位の値を削除するには、以下のコードのようにzremrangebyrankを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
rc.zadd('ss1', '商品4', 400)
rc.zadd('ss1', '商品5', 500)
# Sorted Setで指定範囲の順位の値を削除する
rc.zremrangebyrank('ss1', 3, -1)
for value in rc.zrange('ss1', 0, -1):
 print value

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月22日水曜日

redis-pyでSorted Setで指定の値を削除する

redis-pyでSorted Setで指定の値を削除するには、以下のコードのようにzremを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
# Sorted Setで指定の値を削除する
rc.zrem('ss1', '商品1')
for value in rc.zrange('ss1', 0, -1):
 print value

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月20日月曜日

redis-pyでSorted Setで指定の値の順位を取得する

redis-pyでSorted Setで指定の値の順位を取得するには、以下のコードのようにzrankを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
# Sorted Setで指定の値の順位を取得する
print(rc.zrank('ss1', '商品1'))
print(rc.zrank('ss1', '商品2'))
print(rc.zrank('ss1', '商品3'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月18日土曜日

redis-pyでSorted Setの指定のスコア範囲の要素を取得する

redis-pyでSorted Setの指定のスコア範囲の要素を取得するには、以下のコードのようにzrangebyscoreを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
# 指定のスコア範囲の要素を取得する
for value in rc.zrangebyscore('ss1', 200, 300):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月16日木曜日

redis-pyで複数のSorted Setの積集合を返す

redis-pyで複数のSorted Setの積集合を返すには、以下のコードのようにzinterstoreを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', '商品1', 100)
rc.zadd('ss1', '商品2', 200)
rc.zadd('ss1', '商品3', 300)
rc.zadd('ss2', '商品2', 1000)
rc.zadd('ss2', '商品3', 100)
# 複数のSorted Setの積集合を返す
# スコアはSUMされる
rc.zinterstore('rs', ['ss1', 'ss2'])
for value in rc.zrange('rs', 0, -1):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月14日火曜日

redis-pyでSorted Setの指定した値のスコアをインクリメントする

redis-pyでSorted Setの指定した値のスコアをインクリメントするには、以下のコードのようにzincrbyを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', 'value1', 100)
rc.zadd('ss1', 'value2', 200)
rc.zadd('ss1', 'value3', 300)
# 指定した値のスコアをインクリメントする
rc.zincrby('ss1', 'value2', 1000)
for value in rc.zrange('ss1', 0, -1):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月12日日曜日

redis-pyでSorted Setの要素数を取得する

redis-pyでSorted Setの要素数を取得するには、以下のコードのようにzcardを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', 'value1', 100)
rc.zadd('ss1', 'value2', 200)
rc.zadd('ss1', 'value3', 300)

# Sorted Setの要素数を取得
print(rc.zcard('ss1'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月11日土曜日

PyMongoでJavaScriptを評価する

PyMongoでJavaScriptを評価するには、以下のコードのようにevalを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
# JavaScriptを評価する
print(conn.local.eval("function inc(x){return parseInt(x)+1;}", [1]))

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年6月10日金曜日

redis-pyでSorted Setの指定した範囲の値を取得する

redis-pyでSorted Setの指定した範囲の値を取得するには、以下のコードのようにzrangeを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('ss1')
# Sorted Setに値を追加
rc.zadd('ss1', 'value1', 100)
rc.zadd('ss1', 'value2', 200)
rc.zadd('ss1', 'value3', 300)

# 指定した範囲の値を取得
for value in rc.zrange('ss1', 0, -1):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月9日木曜日

PyMongoでインデックスを削除する

PyMongoでインデックスを削除するには、以下のコードのようにdrop_indexを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("members")
col = conn.local.members
# インデックスを作成する
indexname = col.create_index("name")
# インデックスを削除する
col.drop_index(indexname)
# インデックスの情報を表示する
for idx in col.index_information():
 print(idx)

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年6月8日水曜日

redis-pyで指定したキーの値のタイプを取得する

redis-pyで指定したキーの値のタイプを取得するには、以下のコードのようにtypeを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.set('key1', 'value1')
rc.sadd('set1', 'value1')
rc.rpush('list1', 'value1')

# 指定したキーの値のタイプを取得
print('key1:' + rc.type('key1'))
print('set1:' + rc.type('set1'))
print('list1:' + rc.type('list1'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月7日火曜日

PyMongoでインデックスの情報を表示する

PyMongoでインデックスの情報を表示するには、以下のコードのようにindex_informationを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("members")
col = conn.local.members
# インデックスを作成する
col.create_index("name")
# インデックスの情報を表示する
for idx in col.index_information():
 print(idx)

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年6月6日月曜日

redis-pyでキーの期限切れまでの秒数を取得する

redis-pyでキーの期限切れまでの秒数を取得するには、以下のコードのようにttlを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
# 10秒間有効なkey-valueを設定
rc.setex('key1', 'value1', 10)
# 期限切れまでの秒数を取得
print(rc.ttl('key1'))

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月5日日曜日

PyMongoでデータを削除する

PyMongoでデータを削除するには、以下のコードのようにremoveを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("members")
col = conn.local.members
col.insert({"name":"robert", "age":25})
col.insert({"name":"brian", "age":25})
# robertを削除
col.remove({"name":"robert"})
# データを全件表示
for obj in col.find():
 print str(obj[u'name']) + ":" + str(obj[u"age"])

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年6月4日土曜日

redis-pyで複数セットの和集合を含むセットを作成する

redis-pyで複数セットの和集合を含むセットを作成するには、以下のコードのようにsunionstoreを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('set1')
rc.delete('set2')
# セットに値を追加
rc.sadd('set1', 'value1')
rc.sadd('set1', 'value2')
rc.sadd('set1', 'value3')
rc.sadd('set2', 'value2')
rc.sadd('set2', 'value5')
# 複数セットの和集合を含むセットを作成
rc.sunionstore('rs', ['set1', 'set2'])
for value in rc.smembers('rs'):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月3日金曜日

PyMongoでデータを更新する

PyMongoでデータを更新するには、以下のコードのようにupdateを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("members")
col = conn.local.members
col.insert({"name":"robert", "age":25})
col.insert({"name":"brian", "age":25})
# robertの年齢を更新
col.update({"name":"robert"}, {"name":"robert", "age":27})
# データを全件表示
for obj in col.find():
 print str(obj[u'name']) + ":" + str(obj[u"age"])

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

2011年6月2日木曜日

redis-pyで複数セットの和集合を取得する

redis-pyで複数セットの和集合を取得するには、以下のコードのようにsunionを使用します。

# coding=UTF-8
import redis

rc = redis.Redis(host='localhost', port=6379, db=1)
rc.delete('set1')
rc.delete('set2')
# セットに値を追加
rc.sadd('set1', 'value1')
rc.sadd('set1', 'value2')
rc.sadd('set1', 'value3')
rc.sadd('set2', 'value2')
rc.sadd('set2', 'value5')
# 複数セットの和集合を取得する
for value in rc.sunion(['set1', 'set2']):
 print(value)

補足
ubuntuで以下のコマンドでredisとredis-pyのインストールができます。
sudo apt-get install redis-server
sudo apt-get install python-redis

動作環境
Python 2.6.6, redis-py (2.0.0-1)

2011年6月1日水曜日

PyMongoでuniqueなインデックスを作成する

PyMongoでuniqueなインデックスを作成するには、以下のコードのようにunique=Trueを指定してcreate_indexを実行します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("members")
col = conn.local.members
# Uniqueなインデックスを作成する
col.create_index("name", unique=True)
col.insert({"name":"robert", "age":25})
col.insert({"name":"brian", "age":25})
# キー重複をおこす
try:
 col.insert({"name":"robert", "age":21}, safe=True)
except errors.DuplicateKeyError:
 print("Duplicated Key.")
# コレクションには、2件のみが含まれる
for obj in col.find():
 print obj

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4