Python 接続 Redis 接続構成

高洛峰
リリース: 2016-10-18 11:47:44
オリジナル
1297 人が閲覧しました

システム環境:

OS: Oracle Linux Enterprise 5.6

redis: redis-2.6.8

python: Python-2.7.3

redisのPythonパッケージバージョン: redis-2.7.2.tar


前提条件:

1. Redis が正常にインストールされ、正しく構成されていることを確認します。ドキュメント

を参照してください。2. Python 環境が正常に構成されていることを確認してください。ドキュメント

Python 接続 Redis を構成します。 1. Redis の Python パッケージをインストールします。

easy-install を使用してインストールします。 easy-install の設定については、上記の Python 環境セットアップを参照してください。

[root@njdyw bin]# easy_install2.7.3 redis

redis を検索

http://pypi.python.org/simple/redis/

を読んで http://github.com/andymccurdy/redis- py

ベストマッチ: redis 2.7.2

http://pypi.python.org/packages/source/r/redis/redis-2.7.2.tar.gz#md5=17ac60dcf13eb33f82cc25974ab17157

redis-2.7の処理.2.tar.gz

redis-2.7.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-8FAlft/redis-2.7.2/egg-dist-tmp-JzQViJ

zip_safe フラグを実行しています設定されていません; アーカイブの内容を分析しています...

easy-install.pth ファイルに redis 2.7.2 を追加しています


/usr/local/python2.7.3/lib/python2.7/site-packages/redis- 2.7.2-py2.7.egg

redis の依存関係を処理しています

redis の依存関係の処理を完了しました


--パーサー パッケージをインストールします (オプション)

説明: パーサーは、redis 応答のコンテンツを解析する方法を制御できます。 redis-py には、PythonParser と HiredisParser という 2 つのパーサー クラスが含まれています。デフォルトでは、redis-py は、hiredis モジュールがインストールされている場合は HiredisParser を使用し、それ以外の場合は PythonParser を使用します。

HiredisParser は C で書かれており、Redis コアチームによって保守されており、そのパフォーマンスは PythonParser の 10 倍以上であるため、使用することをお勧めします。インストール方法は、easy_install を使用します:

[root@njdyw ~]# easy_install2.7.3 Hiredis

Hiredis を検索

Reading http://pypi.python.org/simple/hiredis/

Reading https://github. com/pietern/hiredis-py

ベストマッチ:hiredis 0.1.1

ダウンロード http://pypi.python.org/packages/source/h/hiredis/hiredis-0.1.1.tar.gz#md5=92128474f6fb027cfb8587fce724ea8e

hiredis-0.1.1.tar.gzを処理しています

hiredis-0.1.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ZanSCB/hiredis-0.1.1/egg-dist-tmpを実行しています-XCZBQ0

zip_safe フラグが設定されていません; アーカイブの内容を分析しています...

easy-install.pth ファイルに Hiiris 0.1.1 を追加します


/usr/local/python2.7.3/lib/python2.7/ をインストールしましたsite-packages/hiredis-0.1.1-py2.7-linux-x86_64.egg

hiredis の依存関係の処理

hiredis の依存関係の処理が完了しました


2. インストールが成功したかどうかを確認します

--簡単-install インストールされた拡張機能パッケージは、デフォルトで Python の site-packages ディレクトリにあります

[root@njdyw ~]#whereis python2.7.3

python2.7: /bin/python2.7.3 /usr/local/python2.7.3

[root @njdyw ~]#cd /usr/local/python2.7.3/lib/python2.7/site-packages/

[root@njdyw site-packages]# ll

合計 408

-rw- r--r -- 1 ルート root 239 03-21 10:45 easy-install.pth

-rw-r--r-- 1 ルート root 119 03-21 10:07 README

-rw-r- -r-- 1 ルート root 60401 03-21 10:45redis-2.7.2-py2.7.egg

-rw-r--r-- 1 ルート root 332125 03-21 10:12 setuptools-0.6c11- py2.7.egg

-rw-r--r-- 1 root root 30 03-21 10:12 setuptools.pth


redis-2.7.2-py2.7.egg が確認できます。パッケージは正常にインストールされました


3. 接続をテストします

[root@njdyw site-packages]#python2.7.3

Python 2.7.3 (デフォルト、2013 年 3 月 21 日、10:06:48)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2

詳細については、「ヘルプ」、「著作権」、「クレジット」、または「ライセンス」と入力してください。

>>>redis をインポート

> >>redisClient=redis.StrictRedis( host='127.0.0.1',port=6379,db=0)

>>> redisClient.set('test_redis','Hello Python')

True

>>> value=redisClient.get('test_redis ')

>>> print value

Hello Python

>>> redisClient.delete('test_redis')

True

>>> value=redisClient.get('test_redis ')

>>> 値を出力

None



>>> dir(redis)

['AuthenticationError', 'Connection', 'ConnectionError', 'ConnectionPool', 'DataError', 'InvalidResponse'、'PubSubError'、'Redis'、'RedisError'、'ResponseError'、'StrictRedis'、'UnixDomainSocketConnection'、'VERSION'、'WatchError'、'__all__'、'__builtins__'、'__doc__'、'__file__ ', '__loader__', '__name__ ', '__package__', '__path__', '__version__', '_compat', 'client', 'connection', '例外', 'from_url', 'utils']

>> > redisClient=redis.StrictRedis(host ='127.0.0.1',port=6379,db=0)

>>> dir(redisClient)

['RESPONSE_CALLBACKS', '__class__', '__contains__', '__delattr__', '__delitem__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__module__'、'__new__'、'__reduce__'、'__reduce_ex__'、'__repr__'、'__setattr__'、'__setitem__'、'__sizeof__'、'__str__'、'__subclasshook__'、'__weakref__'、'_zaggregate'、'append '、'bgrewriteaof'、'bgsave'、'bitcount'、'bitop'、'blpop'、'brpop'、'brpoplpush'、'client_kill'、'client_list'、'config_get'、'config_set'、'connection_pool'、 'dbsize'、'debug_object'、'decr'、'delete'、'echo'、'eval'、'evalsha'、'execute_command'、'exists'、'expire'、'expireat'、'flushall'、'flushdb '、'from_url'、'get'、'getbit'、'getrange'、'getset'、'hdel'、'hexists'、'hget'、'hgetall'、'hincrby'、'hincrbyfloat'、'hkeys'、 'hlen'、'hmget'、'hmset'、'hset'、'hsetnx'、'hvals'、'incr'、'incrbyfloat'、'info'、'keys'、'lastsave'、'lindex'、'linsert '、'llen'、'lock'、'lpop'、'lpush'、'lpushx'、'lrange'、'lrem'、'lset'、'ltrim'、'mget'、'move'、'mset'、 'msetnx'、'object'、'parse_response'、'persist'、'pexpire'、'pexpireat'、'ping'、'pipeline'、'pttl'、'publish'、'pubsub'、'randomkey'、'register_script '、'rename'、'renamenx'、'response_callbacks'、'rpop'、'rpoplpush'、'rpush'、'rpushx'、'sadd'、'save'、'scard'、'script_exists'、'script_flush'、 'script_kill'、'script_load'、'sdiff'、'sdiffstore'、'set'、'set_response_callback'、'setbit'、'setex'、'setnx'、'setrange'、'shutdown'、'sinter'、'sinterstore '、'sismember'、'slaveof'、'smembers'、'smove'、'sort'、'spop'、'srandmember'、'srem'、'strlen'、'substr'、'sunion'、'sunionstore'、 'time'、'transaction'、'ttl'、'type'、'unwatch'、'watch'、'zadd'、'zcard'、'zcount'、'zincrby'、'zinterstore'、'zrange'、'zrangebyscore ', 'zrank', 'zrem', 'zremrangebyrank', 'zremrangebyscore', 'zrevrange', 'zrevrangebyscore', 'zrevrank', 'zscore', 'zunionstore']

>>>


4.测试实例:

(1).ハンドル文形式据导入toredis

--导入的数据格式

[root@njdyw ~]#more data.txt

wolys # wolysopen111 # wolys@21cn.com

coralshanshan #601601601 #zss1984@126.com

pengfeihuchao #woaidami #294522652@qq.com

simulategirl #@#$9608125 #simulatorboy@163.com

daisypp #12345678 # 3@163.com

sirenxing424 #tfiloveyou #sirenxing424 @126.com

raininglxy # 1901061139 # lixinyu23@qq.com

leochenlei # chenlei1201@gmail.com

z370433835 # lkp145566 # 370433835@qq.com


--创建コマンド脚本

[ root@njdyw ~]#cat imp_red.py

import redis

import re

pool = redis.ConnectionPool(host='127.0.0.1', port=6379)

r = redis.Redis(connection_pool=pool)

pipe = r.pipeline()

p=re.compile(r'(.*)s#s(.*)s#s(.*)');

pipe = r.pipeline()

f = open("data.txt")

matchs=p.findall(f.read())

一致するユーザーの場合:

key='users_%s' %user[0].strip()

Pipe.hset(key,'pwd',user[1].strip()).hset(key,'email',user[2].strip())

pipe.execute()

f。 close()


注意:要严格制御python脚本中の空格

--実行脚本

[root@njdyw ~]# python2.7.3 imp_red.py


--查看导入稿

[root@njdyw ~]#redis-cli

redis 127.0.0.1:6379> キー *

1) "users_xiaochuan2018"

2) "users_coralshanshan"

3) "users_xiazai200901"

4) 「users_daisypp」

5) "users_boiny"

6) "users_raininglxy"

7) "users_fennal"

8) "users_abc654468252"

9) "users_babylovebooks"

10) "users_xl20081 1"

11) "users_baby19881018"

12) "users_darksoul0929"

13) "users_pengcfwxh"

14) "users_alex126126"

15) "users_jiongjiongmao"

16) "users_sirenxing424"

17) "users_mengjie007"

18) "users_cxx0409"

19) "users_candly8509"

20) s_licaijun007"

21) "users_ai3Min2"

22) "users_bokil"

23) "users_z370433835"

24) "users_yiling1007"

25) "users_simulategirl"

26) "users_fxh852"

27)

28) "users_黄大橋"

29 ) "users_q1718334567"

30) "users_xldq_l"

31) "users_beibeilong012"

32) "users_hudaoyin"

33) "users_yoyomika"

34) "users_jacksbalu"

35) 「users_wolys」

36) "users_kangte1"

37) "users_demonhaodh"

38) "users_ysdz8"

39) "users_leochenlei"

40) "users_llx6888"

41) "users_pengfeihuchao"

レディス 127.0.0.1:6379>

レディス127.0.0.1:6379>hget users_pengfeihuchao メール

"294522652@qq.com"

redis 127.0.0.1:6379> hget users_llx6888 メール

"linlixian200606@126.com"


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート