欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > fastzdp_redis第一次开发, 2024年9月26日, Python操作Redis零基础快速入门

fastzdp_redis第一次开发, 2024年9月26日, Python操作Redis零基础快速入门

2025/5/2 16:35:00 来源:https://blog.csdn.net/qq_37703224/article/details/142545992  浏览:    关键词:fastzdp_redis第一次开发, 2024年9月26日, Python操作Redis零基础快速入门

提供完整录播课

在这里插入图片描述

安装

pip install fastzdp_redis

Python连接Redis

import redis# 建立链接
r = redis.Redis(host='localhost', port=6379, db=0)# 设置key
r.set('foo', 'bar')# 获取key的值
print(r.get('foo'))

RESP3 支持

简单的理解: 支持更丰富的数据类型

参考文档:
https://blog.csdn.net/LZH984294471/article/details/114233835
https://trunks2008.github.io/redis/RESP3.html#_5%E3%80%81verbatim-string

示例代码:

import redis# 建立链接
# 通过参数 protocol=3  支持 RESP3
r = redis.Redis(host='localhost', port=6379, db=0, protocol=3)# 设置key
r.set('foo', 'bar')# 获取key的值
print(r.get('foo'))

连接池

import redis# 建立链接
pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
r = redis.Redis(connection_pool=pool)# 设置key
r.set('foo', 'bar')# 获取key的值
print(r.get('foo'))

异步支持

参考文档: https://redis.readthedocs.io/en/stable/examples/asyncio_examples.html

自动解析结果

import redis# 建立链接
# decode_responses=True 得加在获取连接池对象的参数里面, 否则不生效
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)# 设置key
r.set('foo', 'bar')# 获取key的值
print(r.get('foo'))

设置过期时间

  • ex - 过期时间(秒) 这里过期时间是3秒,3秒后p,键food的值就变成None
  • px - 过期时间(豪秒) 这里过期时间是3豪秒,3毫秒后,键foo的值就变成None

示例代码:

import redis
import time# 建立链接
# decode_responses=True 得加在获取连接池对象的参数里面, 否则不生效
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)# 设置key
r.set('foo', 'bar', ex=3)# 获取key的值
print(r.get('foo'))time.sleep(3)print(r.get('foo'))

nx 不存在才创建

nx - 如果设置为True,则只有name不存在时,当前set操作才执行 (新建)

在分布式事务中, 经常用到这个特性.

示例:

import redis
import time# 建立链接
# decode_responses=True 得加在获取连接池对象的参数里面, 否则不生效
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)# 设置key
# nx 不存在, 才新建
r.set('foo', 'bar', nx=True)
r.set('foo', 'bar333', nx=True)
print(r.get('foo'))# 设置key
# 如果不设置nx, 则每次都会修改
r.set('foo', 'bar')
r.set('foo', 'bar333')
print(r.get('foo'))

使用FastZDPRedisClient

import fastzdp_redis as fzr# 建立链接
rc = fzr.FastZDPRedisClient()
r = rc.get_client()r.set("name", "张大鹏")
print(r.get("name"))

使用类封装的get和set方法

底层会自动维护连接池的链接, 更方便.

import fastzdp_redis as fzr# 建立链接
r = fzr.FastZDPRedisClient()r.set("name", "张大鹏")
print(r.get("name"))

底层封装的代码如下, 屏蔽细节, 使用更简单.

import redisclass FastZDPRedisClient:def __init__(self,host="127.0.0.1",port=6379,db=0,decode_responses=True):# 连接池self.pool = redis.ConnectionPool(host=host, port=port, db=db, decode_responses=decode_responses)def get_client(self):"""从连接池获取客户端对象:return: Redis操作的客户端对象"""return redis.Redis(connection_pool=self.pool)def set(self, key, value, ex=None):"""设置字符串的方法"""r = self.get_client()if isinstance(ex, int):r.set(key, value, ex)else:r.set(key, value)r.close()def get(self, key):"""获取字符串的方法"""r = self.get_client()value = r.get(key)r.close()return value

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词