Python 연결 Redis 연결 구성

高洛峰
풀어 주다: 2016-10-18 11:47:44
원래의
1274명이 탐색했습니다.

시스템 환경:

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 환경이 성공적으로 구성되었는지 확인하려면

redis에 연결하도록 Python 구성:

문서를 참조하세요. Redis 패키지:

쉬운 설치 설치를 사용합니다. 쉬운 설치 구성은 위의 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라는 두 개의 Parser 클래스가 포함되어 있습니다. 기본적으로 redis-py는 Hiredis 모듈이 설치된 경우 HiredisParser를 사용하고, 그렇지 않으면 PythonParser를 사용합니다.

HiredisParser는 C로 작성되었으며 redis 코어팀에서 관리하고 있으며 PythonParser보다 성능이 10배 이상 높으므로 사용을 권장합니다. 설치 방법, easy_install 사용:

[root@njdyw ~]# easy_install2.7.3 hiedis

hiredis 검색

http://pypi.python.org/simple 읽기 /hiredis/

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

hireis-0.1.1.tar.gz 처리

hireis-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 파일에 hiedis 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. 설치 성공 여부 확인

--easy-install로 설치된 확장 패키지는 기본적으로 python

[root@njdyw의 site-packages 디렉터리에 있습니다. ~]#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 루트 루트 239 03-21 10:45 easy-install.pth

-rw-r--r-- 1 루트 루트 119 03-21 10:07 README

-rw-r- -r-- 1 루트 루트 60401 03-21 10:45redis-2.7.2-py2.7.egg

-rw-r--r-- 1 루트 루트 332125 03- 21 10:12 setuptools -0.6c11-py2.7.egg

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


redis-2.7.2-py2.7.egg 패키지가 성공적으로 설치된 것을 확인할 수 있습니다


3. >

[root@njdyw 사이트 -패키지]#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

자세한 내용을 보려면 "help", "copyright", "credits" 또는 "license"를 입력하세요.

>>>import 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')

>>> 인쇄 값

Hello Python

>>> redisClient.delete('test_redis')

True

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

>>> 인쇄 값

없음



>>> 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)

>>> 디렉토리(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', '이름 바꾸기', '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 ', '시간', '트랜잭션', 'ttl', '유형', 'unwatch', 'watch', 'zadd', 'zcard', 'zcount', 'zincrby', 'zinterstore', 'zrange', 'zrangebyscore', 'zrank', 'zrem', 'zremrangebyrank', 'zremrangebyscore', 'zrevrange', 'zrevrangebyscore', 'zrevrank', 'zscore', 'zunionstore']

>>>


4.测试实例:

(1).把文本数据导入到redis

--导入的数据格式

[root@njdyw ~]#more data.txt

wolys # wolysopen111 # wolys@21cn.com

coralshanshan # 601601601 # zss1984@126.com

pengfeihuchao # woaidami # 294522652@qq.com

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

daisypp # 12345678 # zhoushigang_123@163.com

sirenxing424 #tfi사랑해 # sirenxing424@126.com

raininglxy # 1901061139 # lixinyu23@qq.com

leochenlei # leichenlei # chenlei1201@gmail.com

z370433835 # lkp14556 6 #370433835@qq. com


--创建命令脚本

[root@njdyw ~]#cat imp_red.py

redis 가져오기

다시 가져오기

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

r = redis.Redis(connection_pool=pool)

파이프 = 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()


注의미:要严格控systempython脚本中的空格

--执行脚本

[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_xl200811"

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) "users_licaijun007"

21) "users_ai3Min2"

22) "users_bokil"

23) "users_z370433835"

24) "users_yiling1007"

25) "users_simulategirl"

26) "users_fxh852"

27) "users_baoautumn"

28) "users_huangdaqiao "

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"

redis 127.0.0.1:6379>

redis 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!