redis基础之python连接redis(五)
2023-09-11 14:14:08 时间
前言
前面介绍了在数据库命令行直接操作redis,现在学习使用python的redis包来操作redis,本人安装的是redis==2.10.6;
系列文章
python与redis的交互
- 安装:
环境:Ubuntu16.04;redis-4.0.6
$ sudo pip redis
- 测试
$ ipython
import redis # 出现版本信息,安装成功
redis实例化对象
import redis
r1 = redis.Redis()
r2 = redis.StrictRedis()
# redis有上面两个类可以建立连接对象,用法几乎一样,推荐使用StrictRedis.
r = redis.StrictRedis(host='localhost', # 默认ip为127.0.0.1
port=6379, # 默认端口6379
db=0, # 默认数据库0
password=None,) # 默认没有密码
redis操作string类型
- 增
print(con.set('num', '3')) # string类型的插入键值对,参数key,value;返回true或False
print(con.setex('name',3,'xiaobai')) # 设置一个有时间的键值对,返回true或false
print(con.setnx('my','hh')) # 设置单个不存在的键值对
print(con.mset({'my':'cai'})) # 设置多个键值对,返回true或false
print(con.msetnx({'you':'tan','my':'wan'})) # 为不存在的键设置值,如果有一个已经存在,整个会失败,返回false
- 查
print(con.get('num')) # 获取键的值,返回二进制的数据
print(con.getrange('name', 0, 2)) # 获取子串,参数key、下标范围
print(con.strlen('name')) # 获取值的长度
print(con.exists('name')) # 是否存在这个键,针对所有的类型
- 改
print(con.incr('num')) # 值自加操作,返回计算后的结果值
print(con.incr('num','23')) # 值加一个整数操作,返回计算后的结果值,
print(con.incrby('num', '5')) # 值加一个整数操作,返回计算后的结果值
print(con.incrbyfloat('num', '3.5')) # 值加一个浮点数操作,返回计算后的结果值
print(con.incrbyfloat('num', '-3.5')) # 值加一个浮点数操作,返回计算后的结果值
print(con.decr('num')) # 值自减操作,返回计算后的结果值
print(con.decr('num', '5')) # 值减一个整数操作,返回计算后的结果值
print(con.append('boy', 'tom')) # 字符串拼接,参数key value,返回当前字符串的长度
print(con.setrange('name', '5', 'hh')) # 字符串替换字符,参数为键、偏移量、值,返回当前字符串的长度
- 删
print(con.delete('my','name')) # 删除多个键值对,获取删除成功的数量
redis操作list类型
- 增
print(con.rpush('list', 'v1', 'v2')) # 从列表的首部插入,参数键、值,值可多个,返回列表的长度
print(con.lpush('list', 'vx')) # 从列表的尾部插入,参数键、值,值可多个,返回列表的长度
con.lset('list',0,20) # 在列表的下标0位置插入20
- 查
print(con.lrange('list',0,-1)) # 获取范围内的元素,返回一个列表,原来的列表不变
- 删
print(con.lpop('list')) # 从列表首部弹出一个元素
print(con.rpop('list')) # 从列表尾部弹出一个元素
print(con.blpop('list',3)) # 从列表首部弹出一个元素,在3秒内阻塞等待,默认为0秒;没有获取值返回none
print(con.brpop('list', 3)) # 从列表右端弹出一个元素,在3秒内阻塞等待,默认为0秒
- 改
print(con.rpoplpush('list', 'list1')) # 将list最右端的元素移到list1的最左端,返回移动的元素
# 将list最右端的元素移到list1的最左端,返回移动的元素,等待时间3秒,默认0秒
print(con.brpoplpush('list', 'list1', 3))
print(con.ltri('list', 2, -1)) # 剪切列表,返回剪切后的列表,改变了原来的列表
redis操作hash
- 增
print(con.hset('fruit','apple','red')) # 设置单个散列键值对,参数name,key,value,返回true或false
print(con.hmset('color', {'blue':'good','green':'bad'})) # 对个散列键值对,返回true或false
print(con.hsetnx('goods', 'color', 'white'))
- 删
print(con.hdel('color','blue')) # 删除散列的某些键值对,至少成功一个返回true,其他返回False
- 查
print(con.hget('color', 'green')) # 获取散列的单个值
print(con.hmget('color', 'green', 'blue')) # 获取散列的多个值
print(con.hkeys('color')) # 获取散列的所有的键
print(con.hvals('color')) # 获取散列的所有的值
print(con.hgetall('color')) # 获取散列的所有的键值对,返回一个二进制编码的字典
print(con.hexists('color','red')) # 判断一个散列是否存在某个键,返回true或False
print(con.hstrlen('color', 'blue')) # 获取值字符串的长度,返回一个数字
print(con.hlen('color')) # 获取该散列的键值对数量
- 改
print(con.hincrby('color', 'blue', 3)) # 将散列的值加一个整数,默认加1
print(con.hincrbyfloat('color', 'blue', 3.5)) # 加一个浮点数,默认为1.0
redis操作集合
- 增
print(con.sadd('name', 'a', 'b')) # 添加元素,返回添加的个数
- 删
print(con.srem('name','a')) # 移除元素,返回移除元素的数量
print(con.spop('name')) # 随机的移除一个元素
- 改
print(con.smove('name','name1','bb')) # 将bb从name移到name1,如果name1不存在,创建;返回true或false
- 查
print(con.smembers('name')) # 返回集合所有的元素,以字典的形式
print(con.scard('name')) # 返回集合元素的个数
print(con.sismember('name','b')) # 查看元素是否在集合中,返回true或false
其他redis函数
con.flushdb() # 清除当前数据库
con.flushall() # 清空当前redis
con.expire('name',3) # 单位为秒,为键设置过期时间
con.time() # 查看服务器时间,返回时间戳和当前已过去的微秒数
con.ttl(key) # 查看键还有多少生存期,时间单位为秒
con.keys() # 查看所有的键,默认参数为'*'
- 按命令行的方式写redis
con.execute_command('SET','my', 'hhhh')
# 第一个参数是命令操作,如get,hget,set等;
管道
管道可以缓存命令,减少客户端与redis-server交互的次数
# 创建一个管道值
pipe = con.pipeline()
pipe.get('name')
pipe.set('name','xiao')
# 提交
pipe.execute()
参考
相关文章
- python新建以时间命名的目录
- Another Redis Desktop Manager 链接redis,redis集群链接后用显示不全的问题
- [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐
- 弄明白python reduce 函数
- 【零基础学python】:清华官方出品的《看漫画学Python》全彩PDF,495页资源分享
- python输代码怎么换行?
- 2023版python安装教程奉上,Python永久使用 超详细版,一看就会【小白友好】
- python json文本处理详解
- Linux集群和自动化维2.1 Shell和Python语言的简单介绍
- 《python 与数据挖掘 》一 第2章 Python基础入门
- python 杨辉三角
- net-snmp启用python模块
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- redis使用CacheCloud搭建(Redis云平台)搭建集群监控等等
- 二叉树中的最大路径和-Python
- 基于Python的BP神经网络算法的性别识别【100010110】
- Python基础必掌握的文件读写操作详解
- Python 教程之如何使用 matplotlib 在 python 中绘制数学函数
- Golang 实现 Redis(6): 实现 pipeline 模式的 redis 客户端
- python之参数解包
- 【Computer Vision学习】二、使用pyenv管理多个Python版本(基于Ubuntu16.04)
- python 两数组合并值重复项及几个简单re应用
- python win7 appiumDesktop环境搭建
- Python 基础 之 Ubuntu 上安装 python 和 python-pip
- Golang中通过go-redis操作Redis
- 2.1 The Python Interpreter(python解释器)
- Python dir( )函数
- Python的一些小参考
- Python Excel 对一整列重新赋值