redisの簡単な使い方

11203 ワード

Redisは、ANSI C言語を使用して作成され、ネットワークをサポートし、メモリベースで持続可能なログ型、Key-Valueデータベースであり、複数の言語のAPIを提供しています.
Redisはkey-valueストレージシステムです.Memcachedと同様に、string(文字列)、list(チェーンテーブル)、set(セット)、zset(sorted set--秩序セット)、hash(ハッシュタイプ)など、格納されたvalueタイプが相対的に多くサポートされています.これらのデータ型は、push/pop、add/remove、および交差および差セット、およびより豊富な操作をサポートし、これらの操作は原子的である.これに基づいて、redisは様々な方法のソートをサポートします.memcachedと同様に、効率を保証するために、データはメモリにキャッシュされます.違いはredisが更新したデータを定期的にディスクに書き込むか、修正操作を追加の記録ファイルに書き込むか、それに基づいてmaster-slave同期を実現することである.
Redisは高性能なkey-valueデータベースです.redisの出現はmemcachedのようなkey/valueストレージの不足を大きく補償し,一部の場合関係データベースに良い補完作用を果たすことができる.Java、C/C++、C#、PHP、JavaScript、Perl、Object-C、Python、Ruby、Erlangなどのクライアントを提供しており、使いやすいです.
 
Redisは主従同期をサポートする.データは、プライマリ・サーバから任意の数のセカンダリ・サーバに同期でき、セカンダリ・サーバは、他のセカンダリ・サーバに関連付けられたプライマリ・サーバであってもよい.これにより、Redisは単層ツリーコピーを実行することができる.ディスクは意図的にデータを書くことができます.パブリケーション/サブスクリプションメカニズムが完全に実装されているため、データベースからツリーをどこでも同期させると、チャネルをサブスクリプションし、プライマリ・サーバの完全なメッセージ・パブリケーション・レコードを受信できます.同期は、読み取り操作の拡張性とデータ冗長性に役立ちます.

1.Redisインストール

$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz
$ tar xzf redis-3.0.3.tar.gz
$ cd redis-3.0.3
$ make
$ src/redis-server
#     ,     :6379

 

2.Packageインストール

$ sudo pip install redis
or
$ sudo easy_install redis
or from source
$ sudo python setup.py install

3.使用

>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
'bar'

パイプ(pipeline)は、redisが単一の要求を提供する中で複数のサーバコマンドをバッファリングするベースクラスのサブクラスである.サーバ-クライアント間のTCPデータベースパケットの繰り返しを減らすことで、一括コマンドを実行する機能を大幅に向上させます.
>>> p.set('hello','redis').p.sadd('faz','baz').incr('num').execute()

大量のタイプのドキュメントのオブジェクトがあり、ドキュメントの内容が異なる場合(すなわち、「テーブル」には固定された列がない)、hashを使用して表現できます.
>>> r.hset('users:jdoe',  'name', "John Doe")
1L
>>> r.hset('users:jdoe', 'email', '[email protected]')
1L
>>> r.hset('users:jdoe',  'phone', '1555313940')
1L
>>> r.hincrby('users:jdoe', 'visits', 1)
1L
>>> r.hgetall('users:jdoe')
{'phone': '1555313940', 'name': 'John Doe', 'visits': '1', 'email': '[email protected]'}
>>> r.hkeys('users:jdoe')
['name', 'email', 'phone', 'visits']