
目录
基本用法 连接池 基本命令 String Hash List set"下载:pip install redis
@
***
redis库提供两个类,Redis和StrictRedis,用于实现Redis的命令.
StrictRedis用于实现大部分的官方命令,并使用官方的语法和命令.
Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py.
Redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量,直接使用.
如果需要另一个Redis实例(or Redis数据库)时,就需要重新创建redis连接实例来获取一个新的连接.
连接redis,加上参数decode_responses=True时,写入的键值对中value为字符串类型,否则为字节类型.
连接池基本 *** 作
from redis import Redis# 建立一个连接实例conn = Redis(host='localhost',port=6379,password='',decode_responses=True)# ========= set 与 get (String类型)=========conn.set('name','01')ret01 = conn.get('name') # 01# ========= hset 与 hget (Hash类型)=========info = 'info'conn.hset(info,'k1','v1')conn.hset(info,'k2','v2')ret02 = conn.hget('info','k1') # v1# ========= hmset 与 hgetall (Hash类型)=========conn.hmset('data',{'k1': 'v1','k2': 'v2'})conn.hmset('data',{'k3': 'v3','k4': 'v4'})ret03 = conn.hgetall('data') # {'k1': 'v1','k2': 'v2','k3': 'v3','k4': 'v4'}
使用ConnectionPool来管理对于一个redis服务器的所有连接,可避免每次连接时都要建立、释放连接的开销.
默认,每个Redis实例都会维护一个自己的连接池.
可以直接建立一个连接池,然后作为参数传给Redis实例,这样便可实现多个Redis实例共享一个连接池.
import redis# 建立连接池POol = redis.ConnectionPool(host='localhost',decode_responses=True)# 创建两个Redis实例,共用一个连接池conn01 = redis.Redis(connection_pool=POol)conn02 = redis.Redis(connection_pool=POol)conn01.set('name','n1')conn02.set('name','n2')# ...print(conn01.get('name')) # 此时的key值为:n2 基本命令 在Redis中设置值,默认不存在则创建,存在则修改.
String
delete(*[‘k1‘,‘k2‘])指定key删除flushdb ()清空当前库中的所有keyflushall()清空整个 Redis 服务器的数据
·
模糊查询keys(‘k*‘)查所有以‘k‘开头的key
set(name,value,ex=None,px=None,nx=False,xx=False)
参数
·ex过期时间(秒),过期后值为Nonepx过期时间(毫秒)nx如果设置为True,则只有name不存在时,当前set *** 作才会执行xx如果设置为True,则只有name存在时,当前set *** 作才会执行
*** 作
·get(key):获取key的值.mset(*args,**kwargs):批量设置值(例:mset({‘k1‘: ‘v1‘,‘k2‘: ‘v2‘}))mget(key,*args):批量获取值(例:mget(‘k1‘,‘k2‘))
详见runoob.
Hash
hset(name,key,value)增加单个,不存在则创建
·hget(name,key)获取单个
·hmset(name,mapPing)批量增加,mapPing为字典
·hgetall(name)获取name对应hash的所有键值对
·hlen(name)获取name对应的hash中键值对的个数
·hkeys(name)获取name对应的hash中所有的key的值
·hvals(name)获取name对应的hash中所有的value的值
·hexists(name,key)检查name对应的hash是否存在当前传入的key
·hdel(name,*keys)将name对应的hash中指定的key的键值对删除
List
hscan_iter(self,name,match=None,count=None)
·
返回一个迭代器,List后类型为:[ (‘k1‘,‘v2‘),(‘k2‘,(...)].
利用yIEld封装hscan创建的生成器,实现分批去redis中获取数据
·
参数:match匹配指定key,默认None表示所有的key.count每次分片最少获取的个数,默认None表示采用Redis的默认分片个数.
lpush(name,values)在name对应的List中左边添加元素,没有就新建
·llen(name)获取name对应的列表长度
·lrang(name,index1,index2)按照index切片取出name对应列表里的值
·lpushx(name,value)只能添加不能新建
·lset(name,index,value)给指定索引修改值
·index(name,index)在name对应的列表中根据索引获取列表元素剩下的集合以及有序集合的命令.
linsert(name,where,revalue,value)
·
在name对应的列表的某一个值前或后插入一个新值.
·
参数:nameredis的namewhereBEFORE或AFTERrefvalue标杆值,即:在它前后插入数据value要插入的数据
set
lrem(name,num)
·
在name对应的List中删除指定的值
·
参数:nameredis的namevalue要删除的值num:解释如下
num=0时,删除列表中所有的指定值
num=1时,从前到后,删除左边第1个
num=2时,从前到后,删除2个
num=-2时,从后向前,删除2个
sadd(‘k‘,‘v‘)将一个活多个‘v‘添加到‘k‘中,‘k‘不存在时自动创建,‘v‘存在时忽略
·scard(‘k‘)统计‘k‘中有多少个成员
·sinter(‘k‘)查‘k‘中的所有成员
·smembers(‘k‘)查‘k‘中的所有成员
·sismember(‘k‘,‘v‘)判断‘v‘是否是‘k‘中的成员
sismember "
总结以上是内存溢出为你收集整理的【Python redis】全部内容,希望文章能够帮你解决【Python redis】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)