시스템 환경:
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.3Python 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')>>> 인쇄 값없음['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"