一、Redis是流行的NOSQL内存数据库,以Key-Value方式存储数据。
本篇采用的方式为:Redis安装在Linux主机上,在windows上通过python进行操作redis,并且假设Redis在linux上已经安装完毕,如:redis-server --port 2900 已经10.0.8.40主机2900端口启动服务。
1、安装python-redis扩展包
http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit=search
选择第一个 redis 2.4.13
进入一个网页,该网页中有该扩展包的使用示例,现在拉到网页的最后面下载安装包,并且解压在 D:\py_package 目录
下载之后启动windows命令行,执行如下命令
d:\
cd py_package
D:\Python27\python.exe setup.py build
D:\Python27\python.exe setup.py install
(注意:由于我的机器上安装了Python2.7 与 Python3.2 版本,才使用python全路径指定python版本,若只安装python一个版本可以直接使用 python setup.py build & install)
2、安装完成,现在来测试下:
import redis
r = redis.StrictRedis(host='10.0.8.40', port=2900, db=0)
print(r.set('zcs','Hello'))
上述代码中往 10.0.8.40 2900端口号的redis服务器,添加了一个 zcs 的key
成功时应该打印True
然后可以到Linux主机上查看: redis-cli -h 10.0.8.40 -p 2900
get zcs 返回 ‘hello’ 表示成功。
安装
可以去pypi上找到redis的Python模块:
http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit=search
然后按照提示down下来redis-py-2.2.1.tar.gz
非常标准的解压: #tar xvzf redis-py-2.2.1.tar.gz
进入解压目录,进行Python模块的标准安装:
python setup.py install
运行
打开Python解释器:
>>> import redis
>>> r = redis.Redis(host='localhost', port=6379, db=0) #如果设置了密码,就加上password=密码
>>> r.set('foo', 'bar') #或者写成 r['foo'] = 'bar'
True
>>> r.get('foo')
'bar'
>>> r.delete('foo')
True
>>> r.dbsize() #库里有多少key,多少条数据
0
>>> r['test']='OK!'
>>> r.save() #强行把数据库保存到硬盘。保存时阻塞
True
--------------------------------
>>> r.flushdb() #删除当前数据库的所有数据
True
>>> a = r.get('chang')
>>> a # 因为是Noen对象,什么也不显示!
>>> dir(a)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
>>> r.exists('chang') #看是否存在这个键值
False
>>> r.keys() # 列出所有键值。(这时候已经存了4个了)
['aaa', 'test', 'bbb', 'key1']
附注A:
来看一下redis.Redis的 init() 函数定义:
__init__(self, host='localhost', port=6379, db=0, password=None, socket_timeout=None, connection_pool=None, charset='utf-
8', errors='strict', decode_responses=False, unix_socket_path=None)
最新的redis 2.6.0加入了连接池,具体用法可以看作者博客。
附注B:
其他命令API,请参照redis-Python作者的博客,写的挺清楚了: