最近在写一个检查一台服务器上所有游戏区服配置文件中redis某个key值大小的脚本,本打算使用shell+awk+sed的方式去解决这个问题,但是由于redis的配置信息是php数组形式.shell脚本一时没有写出来,就请教他人帮忙写了个python脚本,但是自己python不是很精通,于是按照脚本中涉及到的python知识现学现用,然后根据自己的需求更改脚本.这里分享一下如何使用python操作redis数据库.
Redis的Python驱动源码下载地址是https://github.com/andymccurdy/redis-py
建议使用Python2.5以上版本,在CentOS 5.x下默认Python版本是2.4,在CentOS 6.x下默认Python版本是2.6.
一 安装Redis的Python驱动
CentOS 6.x
sudo pip install redis (建议使用) 或者 sudo easy_install redis
CentOS 5.x 上安装Redis的Python驱动需要安装Python2.5以上版本,建议安装Python2.6
wget https://github.com/andymccurdy/redis-py/archive/master.zip unzip redis-py-master.zip cd redis-py-master sudo python2.6 setup.py install
二 使用redis模块
调试python语句推荐使用IPython,一个增强型的Python终端可以使用yum install ipython安装
In [88]: import redis In [89]: r=redis.StrictRedis(host='localhost',port=6380,db=3) In [90]: r.set('test','test123') Out[90]: True In [91]: r.get('test') Out[91]: 'test123' In [9]: r.delete("test") Out[9]: 1 In [41]: r.config_get("maxmemory") Out[41]: {'maxmemory': '0'} In [46]: r.config_set("timeout",1) Out[46]: True In [47]: r.config_get("timeout") Out[47]: {'timeout': '1'}
使用redis模块的StrictRedis 类对redis进行操作。大部分操作和redis官方提供的命令语法相同,但是有些命令的使用例外。
1)redis-py 出于安全方面的考虑,没有引入SELECT命令
2)redis-py 使用delete 代替 DEL 命令
3)redis-py 使用config_get和config_set 代替CONFIG GET和CONFIG SET