Python操作Redis
时间:2022-07-28
本文章向大家介绍Python操作Redis,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
安装redis-py模块
推荐清华源
pip install redis -i
创建连接
import redis
r = redis.redis(
host:"localhost",
port:6379,
password="",
db=0
)
创建连接池
import redis
pool = redis.ConnectionPool(
redis.redis(
host:"localhost",
port:6379,
password="",
db=0,
max_connections=20)
从连接池中获取的连接,不必关闭,垃圾回收的时候,连接会自动被归还到连接池
r = redis.Redis(
connection_pool=pool,
)
...
del r
创建
# redis_db.py
import redis
pool = redis.ConnectionPool(
host="localhost",
port=6379,
password="",
db=0,
max_connection=20)
# demo_redis.py
from redis_db import pool
import redis
con = redis.Redis(
connection_pool=pool
)
del con
操作指令
操作字符串
con.set("country", "England")
con.set("city", "London")
city = con.get("city").decode("utf-8")
print(city)
r.delete("country", "city")
r.mset({"country":"Japan", "city":"tokin"})
result = r.mget("counry", "city")
for one in result:
print(one.decode("utf-8"))
try-catch版:
import redistry:
try:
pool = redis.ConnectionPool(
host="localhost",
port=6379,
password="",
db=0,
max_connection=20
)
except Exception as e:
print(e)
# demo2.py
from redis_db import pool
import redis
con = redis.Redis(
connection_pool=pool
)
try:
con.delete("country", "city")
con.mset("country": "德国", "city": "柏林")
result = con.mget("country", "city")
for one in result:
print(one.decode("utf-8"))
except Exception as e:
print(e)
finally
del con
操作列表
# demo3.py
from redis_db import pool
import redis
con = redis.Redis(connection_pool=pool)
try:
con.rpush("dname", "董事会", "秘书处", "财务部", "技术部")
con.lpop("dname")
result = con.lrange("dname", 0, -1)
for one in result:
print(one.decode("utf-8"))
except Exception as e:
print(e)
finally:
del con
操作集合和有序集合
# demo4.py
con.sadd("empolyee", 9001, 9002, 9003)
con.srem("employee", 9001)
result = con.smembers("employee")
con.zadd("keyword", {"马云": 0, ""})
con.zadd("keyword", {"马云": 0, "张朝阳":0, "丁磊": 0})
con.zincrby("keyword", "10", "马云")
result = con.revrange("keyword", 0, -1)
操作哈希表
# demo5.py
from redis_db import pool
import redis
con = redis.Redis(
connection_pool=pool
)
try:
con.hmset("9527", {"name":"Scott", "sex":"male"})
con.hset("9527", "city", "纽约")
con.hdel("9527", "age")
result = con.hexists("9527", "name")
print(result)
result = con.hgetall("9527")
for one in result:
print(one.decode("utf-8"), result[one].decode("utf-8"))
except Exception as e:
print(e)
finally:
del con
redis-py的事务函数
redis-py模块用pipline(管道)的方式向Redis服务器传递批处理处理命令和执行事务
pipline = con.pipline() # 创建pipline对象
pipline.watch(...) # 监视记录
pipline.multi() # 开启事务
pipline.excute() # pipline来增删改查,对事务进行提交
pipline.reset() # 一定要关闭pipline,不然连接池没法回收
# demo6.py
from redis_db import pool
import redis
con = redis.Redis(
conection_pool=pool
)
try:
pipline = con.pipline()
pipline.watch("9527")
pipline.multi()
pipline.hset("9527", "name", "Jackylove")
pipline.hset("9527", "age", 23)
pipline.execute
except Exceptyion as e:
print(e)
finally:
if "pipline" in dir():
pipline.reset()
del con
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Qt音视频开发6-ffmpeg解码处理
- MySQL 百万级数据量分页查询方法及其优化
- 教你设计一个超牛逼的本地缓存!
- Flutter延时任务、Flutter通过Future与Timer实现延时任务
- DDIA 笔记
- 工作流和状态机
- CentOS 6.x 搭建:Headless Chrome + ChromeDriver + Selenium的爬虫环境系统
- 聊聊dubbo-go的registryAwareCluster
- 同样是空值,null和undefined有什么异同?
- 强大到没朋友的mysql-shell及插件
- android JavaPoet记录
- JavaScript里的分号,你加还是不加?
- 技术干货 | Docker 容器逃逸案例汇集
- 一张千万级别数据的表想做分页,如何优化?
- 一文学会爬虫技巧