Python redis 使用教程
Python redis 使用教程
- 1.安装模块
- 2.连接池
- 3.redis 基本命令 String
- 4.redis 基本命令 hash
- 5.redis基本命令 list
- 6.redis基本命令 set
- 7.其他常用操作
- 8.管道
1.安装模块
Python 要使用 redis,需要先安装 redis 模块:
pip install redis
测试安装:
redis 取出的结果默认是字节,我们可以设定 decode_responses=True
改成字符串
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'dahezhiquan') # 设置 name 对应的值
print(r['name']) # dahezhiquan
print(r.get('name')) # dahezhiquan
print(type(r.get('name'))) # <class 'str'>
2.连接池
redis-py 使用 connection pool
来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。
默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池。
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'dahe')
print(r.get('name')) # dahe
3.redis 基本命令 String
set
,在 Redis 中设置值,默认,不存在则创建,存在则修改:
语法:
set(name, value, ex=None, px=None, nx=False, xx=False)
参数:
- ex - 过期时间(秒)
- px - 过期时间(毫秒)
- nx - 如果设置为True,则只有name不存在时,当前set操作才执行
- xx - 如果设置为True,则只有name存在时,当前set操作才执行
案例1:(3秒后,name的值就会变为None)
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('name', 'xiaoqian', ex=3) # 设置过期时间为3秒
print(r.get('name')) # xiaoqian
三秒后再次获取name的值:
print(r.get('name')) # None
mset
,批量获取值:
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set("name1", "xiaoqian")
r.set("name2", "xiaoguo")
print(r.mget('name1', 'name2')) # ['xiaoqian', 'xiaoguo']
getset(name, value)
,设置新值并获取原来的值:
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
print(r.getset("name1", "heihei")) # xiaoqian
print(r.get("name1")) # heihei
strlen(name)
,返回name对应值的字节长度(一个汉字3个字节):
print(r.strlen("name"))
incr(name, amount=1)
,自增 name 对应的值,当 name 不存在时,则创建 name=amount,否则,则自增:
参数:
- name - Redis的name
- amount - 自增数(必须是整数)
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set("like", 521)
r.incr("like", amount=1)
print(r.get("like")) # 522
可以使用
incrbyfloat
方法自增浮点数类型
使用decr
进行自减操作
append(key, value)
,在redis name对应的值后面追加内容:
参数:
- key - redis的name
- value - 要追加的字符串
r.append("name1", "world")
print(r.get("name1"))
4.redis 基本命令 hash
hset(name, key, value)
,单个增加–修改:
name对应的hash中设置一个键值对(不存在,则创建;否则,修改)
参数:
- name - redis的name
- key - name对应的hash中的key
- value - name对应的hash中的value
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.hset("dahe", "name", "guo")
r.hset("dahe", "age", 28)
# 获取dahe的所有key
print(r.hkeys("dahe")) # ['name', 'age']
print(r.hget("dahe", "name")) # guo
print(r.hmget("dahe", "name", "age")) # ['guo', '28']
hmset(name, mapping)
,在name对应的hash中批量设置键值对:
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.hmset("hash1", {"k1": "v1", "k2": "v2", "k3": "v3"})
print(r.hmget("hash1", "k1", "k2", "k3")) # ['v1', 'v2', 'v3']
hgetall(name)
,取出所有的键值对:
print(r.hgetall("dahe")) # {'name': 'guo', 'age': '28'}
hvals(name)
,得到所有的value:
print(r.hvals("dahe")) # ['guo', '28']
hdel(name,*keys)
,将name对应的hash中指定key的键值对删除:
r.hdel("hash1", "k1")
print(r.hgetall("hash1")) # {'k2': 'v2', 'k3': 'v3'}
hincrby(name, key, amount=1)
,自增自减整数:
参数:
- name - redis中的name
- key - hash对应的key
- amount - 自增数(整数,负数表示自减)
hincrbyfloat(name, key, amount=1.0)
表示自增自减浮点数
5.redis基本命令 list
lpush(name,values
),增加:
在name对应的list中添加元素,每个新的元素都添加到列表的最左边
redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.lpush("score", 10, 20, 30, 40)
print(r.lrange("score", 0, -1)) # ['40', '30', '20', '10']
rpush
表示从右边增加
Python是一款功能强大的脚本语言,具有丰富和强大的库,重要的是,它还具有很强的可读性,易用易学,非常适合编程初学者入门.以下是小编为你整理的python菜鸟入门教程 环境配置:下载Python并安 ... Redis数据库教程--系统详解学习Redis全过程 Redis快速入门:Key-Value存储系统简介 Key-Value存储系统: Key-Value Store是当下比较流行的话题,尤其 ... 作为程序员,你肯定遇到过这样的领导: "别人还没走,你先走了不合适吧." "不能确定功劳,总得有苦劳吧!你看别人9点谁走了?" 说到996,这很有可能是诱因之一 ... Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行 ... Linux下安装python,redis linux 安装Python3 1.python下载 请在终端输入如下命令: cd /home wget ```http://cdn.npm.taobao.o ... Redis教程(一) Redis入门教程 1 Redis入门教程 Redis是一个 Key-Value存储系统.和 Memcached类似,它支持存储的 value类型相对更多,包括 string(字 ... 19年录制Redis实战教程 高可用秒杀分布式锁布隆过滤器实战 SpringBoot教程整合 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有nod ... Redis进阶教程-基础篇 雅座Java架构师,架构开发公司百万级订单支付平台 叶向阳 ¥49.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取优惠 ... 根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...r.lset(name, index, value)
,对name对应的list中的某一个索引位置重新赋值:
Python redis 使用教程相关推荐
最新文章
热门文章