python数据库——redis

一、 Redis数据库

Redis是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合等。Redis的特点包括高性能、持久化、支持事务和发布/订阅等功能。它通常被用于解决高并发、高性能读写的场景,如缓存、排行榜、实时统计等。

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库,与其他key-value缓存产品相比有以下区别:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

二、 redis-py库

        redis-py是一个Python语言的Redis客户端库,它提供了丰富的功能和易于使用的接口,使得开发人员可以轻松地与Redis服务器进行交互。Redis作为一个开源的内存数据存储系统,具有高性能、高可靠性和灵活的数据结构等特点,在各种场景下都有着广泛的应用。首先需要安装redis-py库,可以使用pip命令进行安装:

pip install redis

2.1 常用函数

  1. 连接相关函数:

    • redis.Redis(host='localhost', port=6379, db=0, password=None):创建一个Redis连接对象。
    • redis.StrictRedis(host='localhost', port=6379, db=0, password=None):创建一个严格模式的Redis连接对象。
  2. 数据操作函数:

    • set(key, value):设置一个键值对。
    • get(key):获取指定键的值。
    • delete(*keys):删除一个或多个键。
    • exists(key):判断指定键是否存在。
    • incr(key, amount=1):将指定键的值增加指定的数量。
    • decr(key, amount=1):将指定键的值减少指定的数量。
    • mset(mapping):同时设置多个键值对。
    • mget(keys):同时获取多个键的值。
    • hset(name, key, value):在指定的哈希表中设置一个字段的值。
    • hget(name, key):获取指定哈希表中指定字段的值。
    • hgetall(name):获取指定哈希表的所有字段和值。
    • sadd(name, *values):向指定的集合中添加一个或多个元素。
    • smembers(name):获取指定集合中的所有元素。
  3. 列表操作函数:

    • lpush(name, *values):向指定列表的左侧插入一个或多个元素。
    • rpush(name, *values):向指定列表的右侧插入一个或多个元素。
    • lpop(name):从指定列表的左侧弹出一个元素。
    • rpop(name):从指定列表的右侧弹出一个元素。
    • lrange(name, start, end):获取指定列表中指定范围内的元素。

三、数据库连接

以下是一个示例,展示了如何使用redis-py库连接到Redis数据库:

import redis# 创建Redis连接对象
r = redis.Redis(host='localhost', port=6379, db=0, password=None)# 设置键值对
r.set('key1', 'value1')# 获取键的值
value = r.get('key1')
print(value)  # 输出: b'value1'# 删除键
r.delete('key1')# 判断键是否存在
exists = r.exists('key1')
print(exists)  # 输出: False

        在示例中,首先创建了一个Redis连接对象,指定了Redis服务器的主机名、端口号和数据库索引。然后使用set函数设置了一个键值对,使用get函数获取了键的值,并使用delete函数删除了键。最后使用exists函数判断键是否存在。

注:示例中的hostport参数需要根据实际的Redis服务器配置进行修改。

四、数据操作和查询

下面是一个使用redis-py库进行数据操作和查询的示例:
 

import redis# 创建Redis连接
r = redis.Redis(host='localhost', port=6379, db=0)# 设置键值对
r.set('name', 'Alice')
r.set('age', 20)
r.set('score', 85.5)# 获取键的值
name = r.get('name')
age = r.get('age')
score = r.get('score')print(f"Name: {name.decode()}")
print(f"Age: {age.decode()}")
print(f"Score: {score.decode()}")# 对键进行增减操作
r.incrby('age', 2)  # 将age键的值增加2
r.decrby('score', 5)  # 将score键的值减少5# 获取所有键
keys = r.keys('*')
print(f"All Keys: {keys}")# 删除键
r.delete('score')# 检查键是否存在
exists = r.exists('score')
print(f"Key 'score' exists: {exists}")

        以上示例展示了如何使用redis-py库进行数据操作和查询。可以根据具体需求进行更复杂的操作,如设置过期时间、使用哈希表、使用列表等。请注意,示例中的连接参数(host、port、db)可能需要根据您的实际情况进行修改。

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

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

相关文章

23 mysql index 查询

前言 这里主要是 探究一下 explain $sql 中各个 type 诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 以及 相关的差异 此系列文章建议从 mysql const 查询 开始看 测试表结构…

Linux学习第22天:Linux中断驱动开发(一): 突如其来

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 中断作为驱动开发中很重要的一个概念,在实际的项目实践中经常用到。本节的主要内容包括中断简介、硬件原理分析、驱动程序开发及运行测试。其中驱动程…

【用unity实现100个游戏之13】复刻类泰瑞利亚生存建造游戏——包括建造系统和库存系统

文章目录 前言素材人物瓦片其他 一、建造系统1. 定义物品类2. 绘制地图3. 实现瓦片选中效果4. 限制瓦片选择5. 放置物品功能6. 清除物品7. 生成和拾取物品功能 二、库存系统1. 简单绘制UI2. 零代码控制背包的开启关闭3. 实现物品的拖拽拖拽功能拖拽恢复问题 4. 拖拽放置物品5. …

FastestDet---模型训练

代码:https://github.com/dog-qiuqiu/FastestDet 一、构造数据集 数据集格式YOLO相同,每张图片对应一个txt标签文件。标签格式:“category cx cy wh”,category为类别id,cx, cy为归一化标签框中心点的坐标,w, h为归一化标签框的宽度和高度, .txt标签文件内容示例如下: 0…

c++迷宫小游戏

一、总结 一句话总结: 显示:根据map数组输出图像 走动:修改map数组的值,每走一步重新刷新一下图像就好 1、如果走函数用z(),出现输入s会向下走多步的情况,原因是什么? 向下走两层循环ij增加&a…

云中网络的隔离GREVXLAN

底层的物理网络设备组成的网络我们称为 Underlay 网络,而用于虚拟机和云中的这些技术组成的网络称为 Overlay 网络,这是一种基于物理网络的虚拟化网络实现。 第一个技术是 GRE,全称 Generic Routing Encapsulation,它是一种 IP-o…

深信服云桌面用户忘记密码后的处理

深信服云桌面用户忘记了密码,分两种情况,一个是忘记了登录深信服云桌面的密码,另外一个是忘记了进入操作系统的密码。 一、忘记了登录深信服云桌面的密码 登录虚拟桌面接入管理系统界面,在用户管理中选择用户后,点击后…

算法练习3——删除有序数组中的重复项

LeetCode 26 删除有序数组中的重复项 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums …

oracle定时任务的使用

常见错误: PLS-00225: subprogram or cursor xxx reference is out of scope # job名字太长PLS-00201: identifier COUNT_JOB.SUBMIT must be declared # DBMS_JOB.SUBMIT是固定写法创建存储过程 -- 建表 CREATE TABLE TEST_A(TEST_ADD_DATA DATE); -- 存储过程 C…

20分钟彻底理解Pointpillars论文-妥妥的

PointPillars: Fast Encoders for Object Detection from Point Clouds PointPillars:快就对了 摘要(可跳过): 这帮人提出了PointPillars,一种新颖的编码器,它利用PointNets来学习以垂直列组织的点云&am…

Postgresql 模块插件之pg_stat_statements

相关链接: pgsql编译安装 pgBouncer连接池 一、说明 pg_stat_statements 提供了跟踪服务器执行的所有 SQL 语句的规划和执行统计信息的方法。当 pg_stat_statements 处于活动状态时,它会跟踪服务器上所有数据库的统计信息。该模块收集到的统计数据可以…

一个简单的工具,多种用途—J2L3x的优势

J2L3x 是一款流行的团队合作工具,许多组织和公司已经开始使用它来简化和提高沟通和协作的效率。J2L3x 的优势与其多种用途不无关系,下面将详细介绍。 1、实时通信与信息共享 J2L3x 通过实时通信功能,使团队成员随时随地都能保持联系。J2L3x…

Python 实现 PDF 文件转换为图片 / PaddleOCR

文章用于学习记录 文章目录 前言一、PDF 文件转换为图片二、OCR 图片文字识别提取三、服务器端下载运行 PaddleOCR四、下载权重文件总结 前言 文字识别(Optical Character Recognition,简称OCR)是指将图片、扫描件或PDF、OFD文档中的打印字符…

【IPC 通信】信号处理接口 Signal API(5)

收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。 kill(2) 遵循 POSIX.1 - 2008 1.库 …

ThreeJs的场景实现鼠标拖动旋转控制

前面一个章节中已经实现在场景中放置一个正方体,并添加灯光使得正方体可见。但是由于是静态的还不能证明是3D的,我们需要添加一些控制器,使得通过鼠标控制正方体可以动起来,实现真正的3D效果,由此引入OrbitControls组件…

Python15题day13

③continue的好处 break是跳出循环体,continue是跳过continue语句后面的代码块,循环并不停止 题目要求: 使用input函数接受用户的输入,如果用户输入的数值小于等于10,则判断是奇数还是偶数如果数值大于10,则输出“输入…

Flask扩展:简化开发的利器以及26个日常高效开发的第三方模块(库/插件)清单和特点总结

目录 寻找扩展 使用扩展 创建扩展 26个常用的Flask扩展模块 总结 原文:Flask扩展:简化开发的利器以及26个日常高效开发的第三方模块(库/插件)清单和特点总结 (qq.com) Flask是一个轻量级的Python Web框架,它提供…

【计算机网络】互联网公司的网络架构和业务场景

互联网公司的网络架构和业务场景 1. 互联网公司网络的组成1.1 网络的物理组成1.2 骨干网组成1.3 数据中心网络组成 2.互联网公司网络服务场景2.1 通用服务场景2.1.1 客户端到服务端请求真实网络过程2.1.2 客户端到服务端请求抽象网络过程2.1.3 负载均衡网络模型 2.2 边缘服务场…

python学习之路

python 初识python下载python安装python安装成功 idea中配置python环境并运行我的idea是2022版和上一个有点区别VSCode搭建Python开发环境(含Python环境搭建) 学习python 初识python 当我了解python时我决定试一试 首先了解一下什么是python,推荐廖雪峰老师的官网 python简介 …

C语言连接MySQL并执行SQL语句(hello world)

1.新建一个控制台项目 参考【VS2022 和 VS2010 C语言控制台输出 Hello World】VS2022 和 VS2010 C语言控制台输出 Hello World_vs2022源文件在哪_西晋的no1的博客-CSDN博客 2.安装MySQL 参考【MySQL 8.0.34安装教程】MySQL 8.0.34安装教程_西晋的no1的博客-CSDN博客 3.复制MySQ…