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": ...
随机推荐
- Kafka Java API获取非compacted topic总消息数
目前Kafka并没有提供直接的工具来帮助我们获取某个topic的当前总消息数,需要我们自行写程序来实现.下列代码可以实现这一功能,特此记录一下: /** * 获取某个topic的当前消息数 * Jav ...
- [转]Mariadb的root密码忘记后的解决方法
环境背景:CentOS 7.2 一.编辑/usr/lib/systemd/system/mariadb.service 文件,在Service段中添加 1 2 3 4 5 6 7 8 9 10 ...
- [原]openstack-kilo--issue(十二)openstack-keystone和httpd服务同时占用35357和5000
本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. == Keystone service == openstack-keyston ...
- linux zendOptimizer安装
ZendChina官方:下面介绍一下关于在linux环境下Zend Optimizer 3.3的安装方法.本篇文章是基于RHEL5架构的linux系统. (1)ZendOptimizer 3.3.3版 ...
- php foreach
工作半年了我一直以来至知道这样用,foreach($aa as $k=>$r){} 尔今天师父已教我还可以这样用: foreach($aa as $r){}
- day9 九、函数
一.函数 1.函数:可以完成特定功能的代码块,函数就是存放代码块的容器 2.定义函数的语法: 函数四部分:(函数执行的本质:执行函数体,得到函数返回值) ①函数名 ②函数体 ③返回值 ④参数 用def ...
- js点击按钮保存数据到本地
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 配置llama实现impala on yarn-验证未通过,仅以此文作为参考
以下内容采自网络,目前验证未通过,仅以此作为参考: 简介:早期的Impala版本中,为了使用Impala,我们通常会在以Client/Server的结构在各个集群节点启动impala-server.i ...
- phoenix技术(安装部署和基本使用)讲解
1.phoenix简介 Apache Phoenix是构建在HBase之上的关系型数据库层,作为内嵌的客户端JDBC驱动用以对HBase中的数据进行低延迟访问.Apache Phoenix会将用户编写 ...
- Oracle 分区表 收集统计信息 参数granularity
GRANULARITY Determines the granularity of statistics to collect. This value is only relevant for par ...