基于python操纵redis入门介绍
by:授客QQ:1033553122
测试环境
redis-3.0.7
CentOS 6.5-x86_64
python 3.3.2
基于Python操作Redis
Redis客户端实例是线程安全的,可以直接将Redis连接实例设置为一个全局变量,直接使用。如果需要另一个Redis实例,就需要重新创建redis连接实例来获取一个新的连接
示例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ ='shouke'
importredis
if__name__ =='__main__':
r = redis.StrictRedis(host='192.168.1.103',port=6379,db='0')
result = r.set('name','shouke')#存储键-值
print('result of set: %s'% result)
r.set('hobby','music')
name = r.get('name')#获取键“name”对应的值
print('name: %s'% name)
keys = r.keys()#获取所有键
print('keys: %s'% keys)
dbsize = r.dbsize()# redis数据库包的记录数(key的数量)
print('dbsize: %s'% dbsize)
result = r.delete('hobby')#根据指定的键,删除指定键-值
print('result of delete: %s'% result)
result = r.save()#执行“检查点”操作,将数据写回磁盘。保存时阻塞
print('result of save: %s'% result)
hobby = r.get('hobby')
print('hobby: %s'% hobby)
name = r['name']#获取键“name”对应的值
print('name: %s'% name)
result = r.flushdb()#清空数据当前库中的所有数据
print('result of flushdb: %s'% result)
print('dbsize: %s'% r.dbsize())
结论:
result of set: True
name: b'shouke'
keys: [b'name', b'hobby']
dbsize: 2
result of delete: 1
result of save: True
hobby: None
name: b'shouke'
result of flushdb: True
dbsize: 0
连接池
redis-py使用连接池来关联连接到Redis服务器的连接。默认的,每个Redis实例会按顺序创建自己的连接池。可以重写该行为,如下:
pool = redis.ConnectionPool(host='192.168.1.103',port=6379,db=0)
r = redis.Redis(connection_pool=pool)
连接
连接池管理一系列的连接实例。redis-py拥有两种类型的连接。默认的,Connection基于普通TCP socket的连接,UnixDomainSocketConnection允许运行在相同设备的客户端作为服务器,通过一个unix domain socket进行连接,使用示例如下:
r = redis.Redis(unix_socket_path='/tmp/redis.sock')
注:确保在redis.conf文件中定义了unixsocket参数(默认的,该参数已被注释掉)
也可以创建自己的Connection子类
pool = redis.ConnectionPool(connection_class=YourConnectionClass,
your_arg='...', ...)
解析器Parsers
redis-py有两种paser类,PythonParser和HiredisParser。默认的,redis-py会试图使用HiredisParser如果已安装hiredis模块,且否则使用PythonParser。使用Hiredis可以大大提高解析返回结果的速度。</