python操作redis

首先安装redis模块

pip3 install redis -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

一、连接redis

1.基本连接操作

string操作

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

在Redis中设置值,默认,不存在则创建,存在则修改

参数:
     ex,过期时间(秒)
     px,过期时间(毫秒)
     nx,如果设置为True,则只有name不存在时,当前set操作才执行
     xx,如果设置为True,则只有name存在时,当前set操作才执行
# -*- coding:utf-8 -*- 
# Author:Brownyangyang

import redis

#生成实例,连接redis服务器
r = redis.Redis(host='10.211.55.15',port=6379)

#设置key-value
r.set("name","liyang")

#读取数据
print(r.get("name"))

2.连接池

使用连接池可以实现在客户端建立多个连接,需要使用连接的时候通过一定的算法获取已经建立的连接,用完了以后则还给连接池。这样就节省了建立、断开连接所消耗的时间。

# -*- coding:utf-8 -*- 
# Author:Brownyangyang

import redis

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

r = redis.Redis(connection_pool=pool)

r.set("name","liyang")

#读取数据
print(r.get("name"))

3.管道

Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:

  • 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。
  • 服务端处理命令,并将结果返回给客户端。

Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

# -*- coding:utf-8 -*- 
# Author:Brownyangyang
import redis
import time

pool = redis.ConnectionPool(host='10.211.55.15',port=6379,db=2)
r = redis.Redis(connection_pool=pool)
pipe = r.pipeline(transaction=True)
pipe.set('name','liyangpip').set('location','nantong').lpush('list1','hello').sadd('course','math')
pipe.execute()

使用管道效率比不使用管道效率要高。

4.发布订阅

未完待续

原文地址:https://www.cnblogs.com/brownyangyang/p/9028329.html