这篇文章将为大家详细讲解有关python连接redis的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在Linux系统下Python连接Redis的基本配置方法具体操作步骤:

系统环境:

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已成功安装并且正确配置。

主从配置文档:

//www.jb51.net/article/147397.htm

(2)确保Python环境已成功配置。

https://www.jb51.net/article/109765.htm

配置python连接redis:

1、安装Redis的Python包

使用easy-install安装,关于easy-install的配置,参考以上Python环境的搭建。

[root@njdywbin]#easy_install2.7.3redisSearchingforredisReadinghttp://pypi.python.org/simple/redis/Readinghttp://github.com/andymccurdy/redis-pyBestmatch:redis2.7.2Downloadinghttp://pypi.python.org/packages/source/r/redis/redis-2.7.2.tar.gz#md5=17ac60dcf13eb33f82cc25974ab17157Processingredis-2.7.2.tar.gzRunningredis-2.7.2/setup.py-qbdist_egg--dist-dir/tmp/easy_install-8FAlft/redis-2.7.2/egg-dist-tmp-JzQViJzip_safeflagnotset;analyzingarchivecontents...Addingredis2.7.2toeasy-install.pthfileInstalled/usr/local/python2.7.3/lib/python2.7/site-packages/redis-2.7.2-py2.7.eggProcessingdependenciesforredisFinishedprocessingdependenciesforredis

安装Parser包(可选)

说明:Parser可以控制如何解析redis响应的内容。redis-py包含两个Parser类,PythonParser和HiredisParser。默认,如果已经安装了hiredis模块,redis-py会使用HiredisParser,否则会使用PythonParser。

HiredisParser是C编写的,由redis核心团队维护,性能要比PythonParser提高10倍以上,所以推荐使用。安装方法,使用easy_install:

[root@njdyw~]#easy_install2.7.3hiredisSearchingforhiredisReadinghttp://pypi.python.org/simple/hiredis/Readinghttps://github.com/pietern/hiredis-pyBestmatch:hiredis0.1.1Downloadinghttp://pypi.python.org/packages/source/h/hiredis/hiredis-0.1.1.tar.gz#md5=92128474f6fb027cfb8587fce724ea8eProcessinghiredis-0.1.1.tar.gzRunninghiredis-0.1.1/setup.py-qbdist_egg--dist-dir/tmp/easy_install-ZanSCB/hiredis-0.1.1/egg-dist-tmp-XCZBQ0zip_safeflagnotset;analyzingarchivecontents...Addinghiredis0.1.1toeasy-install.pthfileInstalled/usr/local/python2.7.3/lib/python2.7/site-packages/hiredis-0.1.1-py2.7-linux-x86_64.eggProcessingdependenciesforhiredisFinishedprocessingdependenciesforhiredis

2、检查安装是否成功

easy-install安装的扩展包默认在python的site-packages目录下

[root@njdyw~]#whereispython2.7.3python2.7:/bin/python2.7.3/usr/local/python2.7.3[root@njdyw~]#cd/usr/local/python2.7.3/lib/python2.7/site-packages/[root@njdywsite-packages]#ll

总计 408

-rw-r--r--1rootroot23903-2110:45easy-install.pth-rw-r--r--1rootroot11903-2110:07README-rw-r--r--1rootroot6040103-2110:45redis-2.7.2-py2.7.egg-rw-r--r--1rootroot33212503-2110:12setuptools-0.6c11-py2.7.egg-rw-r--r--1rootroot3003-2110:12setuptools.pth

可以看到redis-2.7.2-py2.7.egg包已经成功安装。

3、测试连接

[root@njdywsite-packages]#python2.7.3Python2.7.3(default,Mar212013,10:06:48)[GCC4.1.220080704(RedHat4.1.2-50)]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>importredis>>>redisClient=redis.StrictRedis(host='127.0.0.1',port=6379,db=0)>>>redisClient.set('test_redis','HelloPython')True>>>value=redisClient.get('test_redis')>>>printvalueHelloPython>>>redisClient.delete('test_redis')True>>>value=redisClient.get('test_redis')>>>printvalueNone>>>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','exceptions','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)把文本数据导入到redis

导入的数据格式

[root@njdyw~]#moredata.txtwolys#wolysopen111#wolys@21cn.comcoralshanshan#601601601#zss1984@126.compengfeihuchao#woaidami#294522652@qq.comsimulategirl#@#$9608125#simulateboy@163.comdaisypp#12345678#zhoushigang_123@163.comsirenxing424#tfiloveyou#sirenxing424@126.comraininglxy#1901061139#lixinyu23@qq.comleochenlei#leichenlei#chenlei1201@gmail.comz370433835#lkp145566#370433835@qq.com

创建命令脚本

[root@njdyw~]#catimp_red.pyimportredisimportrepool=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())foruserinmatchs: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.3imp_red.py

查看导入数据

[root@njdyw~]#redis-cliredis127.0.0.1:6379>keys*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"redis127.0.0.1:6379>redis127.0.0.1:6379>hgetusers_pengfeihuchaoemail"294522652@qq.com"redis127.0.0.1:6379>hgetusers_llx6888email"linlixian200606@126.com"

好了,测试连接成功。

关于python连接redis的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。