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

news2024/12/25 14:06:45

提供完整录播课

在这里插入图片描述

安装

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 redis


class 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sublime Text4的下载安装以及汉化

sublime官网:https://www.sublimetext.com/ 按照指示一步步操作即可 汉化操作: 等一会就会弹出搜索框, 帮助菜单这里可以切换语言,

OpenAi以及Dify结合生成Ai模型

文章目录 1、Dify介绍2、使用 Dify3、部署Docker1.系统要求2.系统虚拟化3.下载docker 4、安装WSL1.检查是否已经安装 五、访问系统六、添加模型 1、Dify介绍 Dify官方地址。 Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、…

HOJ网站开启https访问 申请免费SSL证书 部署证书详细操作指南

https://console.cloud.tencent.com/ 腾讯云用户 登录控制台 右上角搜SSL 点击 SSL证书 进入链接 点申请 免费证书 有效期3个月 (以后每三个月申请一次证书 上传) 如果是腾讯云申请的域名 选 自动DNS验证 自动添加验证记录 如果是其他平台申请域…

利士策分享,快钱诱惑与稳健之道:探索财富积累的两种路径

利士策分享,快钱诱惑与稳健之道:探索财富积累的两种路径 在这个瞬息万变的时代,面对“赚快钱”的即时诱惑与“稳健的长远赚钱方式”的持久魅力,我们不禁要深思:在追求财富的道路上,哪一种方式更为明智&…

图神经学习笔记

图神经网络基础 图神经网络用于挖掘事物的“普遍联系”,理解原理、应用技术。本文汇总图神经网络相关介绍和基础模型。 图及特性 图是由顶点和边组成的,如下图左所示。一般图中的顶点表示实体对象(比如一个用户、一件商品、一辆车、一张银行…

Spring RestTemplate 升级 WebClient 导致 OutOfMemoryError

Spring Boot是 Java 企业应用程序的一个非常流行的框架。与内部或外部应用程序集成的一种常见方法是通过 HTTP REST 连接。我们正在从RestTemplate升级到基于 Java NIO 的WebClient,它可以通过允许在调用 REST 服务端点时进行并发来显著提高应用程序性能。WebClient…

Windows环境部署Oracle 11g

Windows环境部署Oracle 11g 1.安装包下载2. 解压安装包3. 数据库安装3.1 执行安装脚本3.2 电子邮件设置3.3 配置安装选项3.4 配置系统类3.5 选择数据库安装类型3.6 选择安装类型3.7 数据库配置3.8 确认安装信息3.9 设置口令 Oracle常用命令 2023年10月中旬就弄出大致的文章&…

【Linux学习】【Ubuntu入门】2-1-1 vim编辑器设置

设置TAB键为4字节及显示行号 VIM编辑器默认TAB键为8空格,改为4空格 输入命令sudo vi /etc/vim/vimrc回车后输入密码按键盘下键到最后,按下“a”进入编辑模式,输入set ts4设置为4空格下一行输入set nu显示行号

华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 7 推送卡片刷新消息

场景介绍 如今衣食住行娱乐影音应用占据了大多数人的手机,一部手机可以满足日常大多需求,但对需要经常查看或进行简单操作的应用来说,总需要用户点开应用体验较繁琐。针对此种场景,HarmonyOS提供了Form Kit(卡片开发服…

Harbor安装笔记

下载离线安装包 wget https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz 解压 tar -zxvf harbor-offline-installer-v2.11.1.tgz 复制一份配置文件出来,修改配置 cp harbor.yml.tmpl harbor.yml vim harbor…

You are not allowed to push code to this project

原因1 用户权限不够。 具体查看用户权限路径: 原因2 vscode之前都能提交代码,但是突然就提交不上了。 表现为:前端代码能拉取,但是不能提交。使用idea进行前端代码的提交,完全没问题。 解决方案:修改TortoiseG…

【MySQL】常见的SQL优化方式

目录 1、插入数据 (1)批量插入 (2)手动提交事务 (3)主键顺序插入 2、主键优化 (1)页分裂 (2)页合并 3、order by 优化 (1)排…

探索有向图深度优先搜索的路径与时间的猜想:反例研究

探索有向图深度优先搜索的路径与时间的猜想:反例研究 引言深度优先搜索(DFS)猜想描述反例构造图结构提供一个DFS遍历顺序伪代码具体的DFS遍历时间戳记录分析C语言实现代码解释运行结果结论引言 在图论中,深度优先搜索(DFS)是一种重要的图遍历算法,被广泛应用于寻找路径…

VMware ESXi 8.0U3b macOS Unlocker OEM BIOS 2.7 标准版和厂商定制版

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitachi (日立)、Fujitsu (富士通)、NEC (日电) 定制版、Huawei (华为) OEM 定制版 请访问…

【讲解+样例】使用opencv对aruco Markers识别

aruco标记与传统棋盘格功能相似,但是更快更便捷。棋盘格使用移步:【鱼眼+普通相机】相机标定 一、 aruco简介 aruco又称为aruco标记、aruco标签、aruco二维码。ArUco 标记通常是正方形的黑白图案。由黑色边框和内部的二进制矩阵组成。内部矩…

63.HDMI显示器驱动设计与验证-彩条实验

(1)常见的视频传输接口有三种: VGA 接口、 DVI 接口和 HDMI 接口,目前的显示设备都配有这三种视频传输接口。三类视频接口的发展历程为 VGA→DVI→HDMI。其中 VGA 接口出现最早,只能传输模拟图像信号; 随后…

CSS 背景属性概览:颜色、图像、位置、组合及透明

目录 非 VIP 用户可前往公众号回复“css”进行免费阅读 background - color background - image background - repeat background - position background - attachment background组合 背景透明 非 VIP 用户可前往公众号回复“css”进行免费阅读 background - color …

Stable Diffusion绘画 | SDXL模型的优缺点及模型推荐

现在 SD 已经开始全面进入 SDXL 的高分辨率时代。 SDXL 模型的优点 学习参数最多的模型:参数总量超过100亿,可对标 Midjourney 分辨率提升4倍:底模分辨率直接为 1024 x 1024 多出 Refiner 采样重构器:能增加更多的细节 更强的提示…

2024上海工博会,正运动展位新品与应用方案(二)

上海,9月26日,上海工博会已成功开展三天。正运动展位(6.1H-E261)依然人气高涨,吸引了众多专业观众和行业同仁的关注。精彩仍在继续~ 展会现场 01 多元工业应用场景方案展示 DEMO应用演示在本次展会上&…

云打包p12苹果证书和profile文件在线制作流程

使用hbuilderx的uniapp框架,除了开发小程序外,还可以打包出原生的安卓或苹果应用。 假如是打包安卓应用个,则需要安卓证书。 而假如打包ios应用,则需要p12格式的苹果证书和苹果证书的profile文件。其中苹果证书可以理解为基于非…