python连接redis
一、首先,要下载redis
pip3 install redis
二、连接redis
import redis #拿到一个redis的链接 conn=redis.Redis('127.0.0.1',6379) # print(conn.get('name')) #redis的字符串操作 #ex过期时间(秒),px过期时间(毫秒) # conn.set('pwd','123456',ex=5) #nx,如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果 # conn.set('name','egon',nx=True) #xx,如果设置为True,则当set操作才执行,值存在才能修改,值不存在,不会设置新值 # conn.set('paa','123456',xx=True) #设置值,只有name不存在时,执行设置操作(添加),如果存在,不会修改 # conn.setnx('name','xuxu') #设置值,setex(name,time,value) # conn.setex('token',5,'hnkjashd') #设置值,psetex(name,time_ms,value) #time_ms过期时间(数字毫秒)或timedelta对象 #mset(*args,**kwargs) 批量设置值 # conn.mset({'k1':'v1','k2':'v2'}) #mget(keys)批量获取值 # ret=conn.mget({'k1','k2'}) # print(ret) #getset(name,value) #设置新值并获取原来的值 #getrange(key,start,end) #获取子序列(根据字节获取,非字符) #参数: # name # start起始位置(字节) # end,结束位置(字节) #setrange(name,offset,value) #修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加) #参数: # offset,字符串的索引,字节 # value,要设置的值 #strlen(name) #返回name对应值的字节长度(一个汉字三个字节) #incr(self,name,amount) #自增name对应的值,当name不存在时,则创建name=amount,否则,则自增 #参数: # name # amount自增数(必须是整数) # print(conn.incr('pw',2)) #decr(self,name,amount=1) #自减 name对应的值,当name不存在时,则创建name=amount,否则,则自减 #参数: # name # amount,自减数 #append(key,value) #在redis name对应的值后面追加内容 #参数: # key,redis的name # value,要追加的字符串
三、连接池与列表的一些操作
# import redis #拿到一个redis的连接池 # pool=redis.ConnectionPool(host='127.0.0.1',port=6379,max_connections=5) #从池子中拿一个连接 # conn=redis.Redis(connection_pool=pool) #这样虽然是从连接池中取连接,但是每次都会建立新的连接池,如果想要同一个连接池,则可以把连接池做成单例 import redis conn=redis.Redis('127.0.0.1',6379) # conn.hset('m1','key2','value2') #redis支持5大数据类型,只支持第一层,也就是说字典的value值,必须是字符串 #如果value值想存字典格式,必须用json转换一下,转成字符串 # conn.hmset('m2',{'key1':'value1','key2':'value2'}) # # print(conn.hmget('m2','key1','key2')) # print(conn.hmget('m2',['key1','key2'])) #取出所有的 # print(conn.hgetall('m2')) # print(conn.hlen('m1')) # print(conn.hkeys('m2')) # print(conn.hvals('m2')) #判断key1是否在m2中 # print(conn.hexists('m2','key1')) #删除键值对,按key来查询的 # conn.hdel('m2','key1','key2') # conn.hdel('m2',*['key1','key2']) #自增,应用场景:统计文章阅读数.key是文章id,value是文章阅读数,有一个阅读者,数字加一,固定一个时间,将数据同步到数据库 # conn.hincrby('m2','key4') # for i in range(1000): # conn.hset('m2','key%s'%i,'value%s'%i) #指定每次取10条,直到取完 # ret=conn.hscan_iter('m2',count=10) #当数据量很大的时候,不要用这种方式 #ret=conn.hgetall('m2') # for i in ret: # print(i) #lpush(name,values) #在name对应的list中添加元素,每个新的元素都添加到列表的最左边 #如r.lpush('oo',11,22,33),保存顺序为33,22,11 # conn.lpush('l1','11','22','33') #对应的有rpush # conn.rpush('l1','x','y','z') #查看list长度 # print(conn.llen('l1')) # conn.linsert('l1','before','11','xuxu') # conn.linsert('l1','after','11','xuxu') #索引从0开始,第2个值设置成'4444' # conn.lset('l1',2,'4444') #*****列表操作,没有getall这个东西,可以通过切片来获取全部 #这个是前闭后闭区间 # print(conn.lrange('l1',0,conn.llen('l1'))) #blpop重点 #删掉一个值,同时可以显示这个值。如果列表中没有值,会一直hang住,实现简单的分布式。 # print(conn.blpop('l1',timeout=3)) #自定义增量迭代 def scan_list(name,count=2): index=0 while True: data_list=conn.lrange(name,index,count+index-1) if not data_list: return index+=count for item in data_list: yield item
四、redis支持的事务
#管道,实现事务操作 #redis对事务的支持其实不是特别好 import redis pool=redis.ConnectionPool(host='127.0.0.1',port=6379) coon=redis.Redis(connection_pool=pool) #拿到一个管道对象 pipe=conn.pipeline(transaction=True) #开启一次执行多条命令 pipe.multi() pipe.set('name','lqz') pipe.set('role','teacher') pipe.execute()
五、在django中使用redis
python连接redis的更多相关文章
- python连接redis,redis集群
python连接redis: import redis r = redis.Redis(host='192.168.50.181',port=6002) r.set('user_phone_14900 ...
- python 连接 redis cluster 集群
一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...
- python连接redis哨兵集群
一.redis集群模式有多种, 哨兵模式只是其中的一种实现方式, 其原理请自行谷歌或者百度 二.python 连接 redis 哨兵集群 1. 安装redis包 pip install redis 2 ...
- python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis
今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...
- Python连接Redis连接配置
1. 测试连接: Python 2.7.8 (default, Oct 20 2014, 15:05:19) [GCC 4.9.1] on linux2 Type "help", ...
- redis基础之python连接redis(五)
前言 前面介绍了在数据库命令行直接操作redis,现在学习使用python的redis包来操作redis,本人安装的是redis==2.10.6: 系列文章 redis安装和配置 redis命令行操作 ...
- python连接redis sentinel集群
安装 python redis 客户端 pip install redis #!/usr/bin/env python # -*- coding:utf-8 -*- #!/usr/bin/env py ...
- Python连接redis时要注意的点
一.一般连接redis情况 from redis import Redis # 实例化redis对象 rdb = Redis(host='localhost', port=6379, db=0) rd ...
- Python 连接Redis两中方式
一.通过django里设置settings文件连接redis #1.settings添加 CACHES = { "default": { "BACKEND": ...
随机推荐
- 终端IO(上)
一.综述 终端IO有两种不同的工作方式: 规范方式输入处理.在这种方式中,终端输入以行为单位进行处理.对于每个读要求,终端驱动程序最多返回一行. 非规范方式输入处理.输入字符不以行为单位进行装配 如果 ...
- cocos2dx内存管理
cocos2dx基于引用计数管理内存,所有继承自CCObject的对象都将获得引用计数的能力,可通过调用retain成员函数用于引用计数值,调用release减少引用计数值,当计数值减为0时销毁对象. ...
- Failed to resolve: com.android.support:appcompat-v7:27.0.1问题解决
今天,在毫无征兆的情况下AndroidStudio又抽风了,搞了大半天,试了网上众多方案,终于解决了这个问题.咱们一步一步来 第一步:这是最开始的bug Error:Failed to resolve ...
- autodesk fbx sdk sample里面的工程无法调试解决方法
1.项目属性->常规中的目标文件名改为1 2.链接器->调试中的生成程序数据库文件改成:$(OutDir)1.pdb 3.连接器->常规中的输出文件改成:$(OutDir)1.exe ...
- MSI/MSI-X Capability结构 (转)
http://blog.sina.com.cn/s/blog_6472c4cc0102dskj.html
- 洛谷P1042 乒乓球【模拟】
题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中111111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位 ...
- [No0000158]思维模型1-20
[No0000158]思维模型1-20.7z 思维模型No1|第一性原理 第一原理(又叫第一性原理)是个今年很火的概念,最早由亚里士多德提出,它相当于数学中的公理,即在每一个系统的探索中,存在第一原理 ...
- [No0000B0]ReSharper操作指南1/16-入门与简介
安装指南 在安装之前,您可能需要检查系统要求. ReSharper是一个VisualStudio扩展.它支持VisualStudio2010,2012,2013,2015和2017.安装完成后,您将在 ...
- C和C指针小记(三)-整型,char,枚举
1.C语言基本数据类型-整型 仅有4中机泵数据类型:整型,浮点型,指针,聚合类型(数组和结构) 整型家族:字符,短整型,整型,长整型.(都分有符号[singed]和无符号[unsinged]) 短整型 ...
- mysq数据库基本操作
MySQL的数据库名称,表名称是区分大小写,MySQL 的SQL keywords不区分大小写: if when you attempt to log in, you get an error mes ...