最近在写一个检查一台服务器上所有游戏区服配置文件中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