首页 > 技术文章 > python操作redis

yoyoma0355 2018-09-11 11:23 原文

当前测试的项目需要实现:python 连接redis,并将任务扔进redis里面

 

一、认识redis 

redis 是一个key-value存储系统,它支持存储的value类型相对更多,包括string\list\set\zset(有序集合)和hash类型,这些数据类型都支持 push/pop、add/remove及取交集并集和差集及更丰富的操作。

 

二、python连接redis

1. 连接方式 

redis-py提供两个类Redis和StrictRedis用于实现Redis的命令, StrictRedis用于实现大部分官方的命令,并使用官司方的语法和命令,Redis是StrictRedis的子类

 

import redis

r = redis.Redis(host='192.168.0.110',port =6379,db=0,password='')

r.set('name','zhangsan')  #添加

print r.get('name')    #获取

 

 

2.连接池

redis-py使用connection pool 来管理对一个redis server 的所有连接,避免每次建立 、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。

 

#!/usr/bin/env python

# -*- coding:utf-8 -*-

 

import redis

 

pool = redis.ConnectionPool(host='192.168.0.110',port=6379)

r = redis.Redis(connection_pool=pool)

r.set('name','zhangsan')   #添加

print r.get('name')   #获取

 

3. 操作

 3.1 String操作

        redis中的String在内存中按照一个name对应一个value来存储

3.1.1 set()

#在redis中设置值,默认不存在则创建,存在则修改。

r.set('name','zhangsan')

语法:set(name,value,ex=None,px=None,nx=False,xx=False)

ex:过期时间(秒)

px:过期时间(毫秒)

nx:如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name,value)

xx: 如果设置为True,则只有name存在时,当前set操作才执行。

setex:(name,value,time)   #设置过期时间秒

psetex(name,time_ms,value)   #设置过期时间毫秒

 

3.1.2 批量设置mset()

  r.mset(name1='zhangsan',naem2="lisa")

       

r.mgset('name1':'zhangsan','name2':'lisa')

 

3.1.3 批量获取 mget()

mget(keys,*args)

print  r.mget("name1","name2")

li = ["name1","name2"]

print r.mget(li) 

3.1.4 getset(name,value)   #设置新值、打印原值

print r.getset('name1',wangwu)   #输出:zhangsan

pritn r.get('name1')   #输出:wangwu

3.1.5 getrange(key,start,end)  #根据字节获取子序列

r.set('name','zhangsan')

print r.getrange('name',0,3)  #输出:zhan

 

3.1.6 setrange(name,offset,value)   #修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加

r.set('name','zhangsan')

r.setrange('name',1,'z')

print r.get('name')   #输出:zzangsan

r.setrange('name',6,'zzzzzzz')

print r.get('name')    #输出:zzangszzzzz

 

3.1.7  

  

4. 管道 

 

 参考链接:http://www.cnblogs.com/melonjiang/p/5342505.html

 

推荐阅读