前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操作Redis

Python操作Redis

作者头像
宇宙之一粟
发布2020-10-26 10:31:21
3640
发布2020-10-26 10:31:21
举报
文章被收录于专栏:宇宙之_一粟

安装redis-py模块

推荐清华源

pip install redis -i

创建连接

代码语言:javascript
复制
import redis

r = redis.redis(
        host:"localhost",
        port:6379,
        password="",
        db=0
)

创建连接池

代码语言:javascript
复制
import redis
pool = redis.ConnectionPool(
redis.redis(
        host:"localhost",
        port:6379,
        password="",
        db=0,
        max_connections=20)

从连接池中获取的连接,不必关闭,垃圾回收的时候,连接会自动被归还到连接池

代码语言:javascript
复制
r = redis.Redis(
    connection_pool=pool,
)
...

del r

创建

代码语言:javascript
复制
# redis_db.py
import redis

pool = redis.ConnectionPool(
        host="localhost",
        port=6379,
        password="",
        db=0,
        max_connection=20)
代码语言:javascript
复制
# demo_redis.py
from redis_db import pool
import redis

con = redis.Redis(
        connection_pool=pool
)

del con

操作指令

操作字符串

代码语言:javascript
复制
con.set("country", "England")
con.set("city", "London")
city = con.get("city").decode("utf-8")
print(city)
代码语言:javascript
复制
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版:

代码语言:javascript
复制
import redistry:
try:
        pool = redis.ConnectionPool(
            host="localhost",
            port=6379,
            password="",
            db=0,
            max_connection=20
    )
except Exception as e:
    print(e)
代码语言:javascript
复制
# 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

操作列表

代码语言:javascript
复制
# 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

操作集合和有序集合

代码语言:javascript
复制
# 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)

操作哈希表

代码语言:javascript
复制
# 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服务器传递批处理处理命令和执行事务

代码语言:javascript
复制
pipline = con.pipline()  # 创建pipline对象
pipline.watch(...)  # 监视记录
pipline.multi()     # 开启事务
pipline.excute()    # pipline来增删改查,对事务进行提交
pipline.reset()  # 一定要关闭pipline,不然连接池没法回收
代码语言:javascript
复制
# 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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装redis-py模块
  • 创建连接
  • 创建连接池
  • 创建
  • 操作指令
    • 操作字符串
      • 操作列表
        • 操作集合和有序集合
          • 操作哈希表
          • redis-py的事务函数
          相关产品与服务
          云数据库 Redis
          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档