温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python连接redis的方法

发布时间:2020-08-14 11:14:18 阅读:595 作者:小新 栏目:编程语言
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章将为大家详细讲解有关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@njdyw bin]# easy_install2.7.3 redis
Searching for redis
Reading http://pypi.python.org/simple/redis/
Reading http://github.com/andymccurdy/redis-py
Best match: redis 2.7.2
Downloading http://pypi.python.org/packages/source/r/redis/redis-2.7.2.tar.gz#md5=17ac60dcf13eb33f82cc25974ab17157
Processing redis-2.7.2.tar.gz
Running 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 flag not set; analyzing archive contents...
Adding redis 2.7.2 to easy-install.pth file
  
Installed /usr/local/python2.7.3/lib/python2.7/site-packages/redis-2.7.2-py2.7.egg
Processing dependencies for redis
Finished processing dependencies for redis

安装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.3 hiredis
Searching for hiredis
Reading http://pypi.python.org/simple/hiredis/
Reading https://github.com/pietern/hiredis-py
Best match: hiredis 0.1.1
Downloading http://pypi.python.org/packages/source/h/hiredis/hiredis-0.1.1.tar.gz#md5=92128474f6fb027cfb8587fce724ea8e
Processing hiredis-0.1.1.tar.gz
Running 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 flag not set; analyzing archive contents...
Adding hiredis 0.1.1 to easy-install.pth file
  
Installed /usr/local/python2.7.3/lib/python2.7/site-packages/hiredis-0.1.1-py2.7-linux-x86_64.egg
Processing dependencies for hiredis
Finished processing dependencies for hiredis

2、检查安装是否成功

easy-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 root  239 03-21 10:45 easy-install.pth
-rw-r--r-- 1 root root  119 03-21 10:07 README
-rw-r--r-- 1 root root 60401 03-21 10:45redis-2.7.2-py2.7.egg
-rw-r--r-- 1 root 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 (default, Mar 21 201310:06:48)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help""copyright""credits" or "license" for more information.
>>>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')
>>> print value
Hello Python
>>> redisClient.delete('test_redis')
True
>>> value=redisClient.get('test_redis')
>>> print value
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''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 ~]#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 # tfiloveyou # sirenxing424@126.com
raininglxy # 1901061139 # lixinyu23@qq.com
leochenlei # leichenlei # 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())
for user in matchs:
  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:6379keys *
 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 email
"294522652@qq.com"
redis 127.0.0.1:6379> hget users_llx6888 email
"linlixian200606@126.com"

好了,测试连接成功。

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

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×