redis存入hash,key=>value和key=>(key=>value)使用Python举例
在 Redis 中,`HASH` 数据结构(也称为 `HMAP` 或 `Hash Map`)允许你存储键值对集合,其中每个键值对都是字段(field)和值(value)的映射。在 Python 中,你可以使用 `redis-py` 库来与 Redis 交互,并存储和检索 HASH 数据。
以下是使用 Python 和 `redis-py` 库来存储和检索 Redis HASH 的示例:
1. **安装 redis-py**(如果你还没有安装的话):
```bash
pip install redis
```
2. **Python 示例**:
```python
import redis
# 连接到 Redis 服务器(这里假设 Redis 服务器在本地运行,端口为 6379)
r = redis.Redis(host='localhost', port=6379, db=0)
# 存入单个键值对到 HASH 中(使用 hset 方法)
# 这里假设我们有一个名为 "user:1" 的 HASH,我们要存入 "name" => "Alice" 和 "age" => 30
r.hset("user:1", "name", "Alice")
r.hset("user:1", "age", 30)
# 也可以一次性存入多个键值对
r.hmset("user:2", {"name": "Bob", "age": 25, "city": "New York"})
# 检索 HASH 中的值(使用 hget 方法)
name = r.hget("user:1", "name")
print(f"Name: {name.decode('utf-8')}") # 输出:Name: Alice
# 检索 HASH 中的所有字段和值(使用 hgetall 方法)
user_data = r.hgetall("user:1")
for field, value in user_data.items():
print(f"{field.decode('utf-8')}: {value.decode('utf-8')}")
# 输出:
# name: Alice
# age: 30
# 对于 "key=>(key=>value)" 的情况,你可以将内部的键值对序列化为字符串,然后作为值存储
# 例如,使用 json 来序列化字典
import json
inner_dict = {"inner_key": "inner_value"}
inner_dict_json = json.dumps(inner_dict)
r.hset("user:3", "inner_hash", inner_dict_json)
# 检索并反序列化内部的 HASH
inner_hash_json = r.hget("user:3", "inner_hash")
inner_hash = json.loads(inner_hash_json)
print(inner_hash) # 输出:{'inner_key': 'inner_value'}
```
注意:在上面的示例中,我们从 Redis 获取的字符串是字节串(`bytes` 类型),因此我们需要使用 `.decode('utf-8')` 将其转换为字符串。同样,当我们将 Python 字典存储为 Redis HASH 的值时,我们使用了 `json.dumps()` 将其序列化为字符串,并使用 `json.loads()` 在检索时反序列化它。
相关文章:
redis存入hash,key=>value和key=>(key=>value)使用Python举例
在 Redis 中,HASH 数据结构(也称为 HMAP 或 Hash Map)允许你存储键值对集合,其中每个键值对都是字段(field)和值(value)的映射。在 Python 中,你可以使用 redis-py 库来与…...
Guava LocalCache源码分析:LocalCache的get、put、expand、refresh、remove、clear、cleanUp
Guava LocalCache源码分析:LocalCache的get、put、expand 前言一、get二、put三、expand 前言 上篇文章,详细描写了Guava LocalCache怎样如ConcurrentHashMap对缓存数据进行了分段存储。本章主要针对LocalCache重要的几个接口进行说明。 一、get CanIg…...
linux-arm ubuntu18.04 qmqtt5.12.6 编译部署
安装 qt 查看qt 版本 : qmake -v 下载对应版本 qmqtt 解压下载的mqtt文件 进入qmqtt xxx/src 目录 在qt 安装目录中创建QtMqtt文件夹, - x86平台qt 默认目录为 /usr/include/x86_64-linux-gnu/qt5 - arm平台qt 默认目录为/us…...
阿里ChatSDK使用,开箱即用聊天框
介绍: 效果:智能助理 ChatSDK,是在ChatUI的基础上,结合阿里云智能客服的最佳实践,沉淀和总结出来的一个开箱即用的,可快速搭建智能对话机器人的框架。它简单易上手,通过简单的配置就能搭建出对…...
LangChain —— Message —— How to trim messages
文章目录 一、概述二、获取最后的 max_tokens 令牌三、获取第一个 max_tokens 令牌四、编写自定义令牌计数器五、连成链六、使用 ChatMessageHistory 一、概述 所有模型都有 有限的 上下文窗口,这意味着它们可以作为输入的 token 数量是有限的。如果你有很长的消息&…...
专升本-1.0.3(英语)-升本209天-星期二
自己要耐得住寂寞,守得住自己的初心,守得住自己的未来,然后不断地真实地面对自己,使自己不断地获得一个真实地成长,说真话办真事,自己总会有一条路了,说真话,办真事的那条路才是最为…...
集合媒体管理、分类、搜索于一体的开源利器:Stash
Stash:强大的媒体管理工具,让您的影音生活井井有条- 精选真开源,释放新价值。 概览 Stash是一个专为个人媒体管理而设计的开源工具,基于 Go 编写,支持自部署。它以用户友好的界面和强大的功能,满足了现代用…...
数仓工具—Hive语法之事务表更新Transactional Table Update
Hive事务表更新 众所周知,Apache Hive 是建立在 Hadoop HDFS 之上的数据仓库框架。由于它包含表,您可能希望根据数据的变化更新表记录。直到最近,Apache Hive 还不支持事务。从 Hive 0.14 及以上版本开始支持事务性表。您需要启用 ACID 属性才能在 Hive 查询中使用更新、删…...
系统架构师(每日一练2)
每日一练 1.为实现对象重用,COM支持两种形式的对象组装,在()重用形式下,一个外部对象拥有指向一个内部对象的唯一引用,外部对象只是把请求转发给内部对象;在()重用形式下,直接把内部对象的接口引用传给外部对象的客户…...
Django REST Framework(十)视图集-ViewSet
视图集(ViewSet)是 Django REST framework 中的一个高级特性,它允许你使用更少的代码来实现标准的 CRUD(创建、读取、更新、删除)操作。ViewSet 类本质上是基于 GenericAPIView 的,但它们提供了更多的默认行…...
sping总览
一、spring体系 1. spring是什么? 轻量级的开源的J2EE框架。它是一个容器框架,主要实现了ioc,同时又通过aop实现了面向切面编程,它又是一个中间层框架(万能胶)可以起一个连接作用,比如说把myba…...
【Godot4.2】MLTag类:HTML、XML通用标签类
概述 HTML和XML采用类似的标签形式。 之前在Godot中以函数库形式实现了网页标签和内容生成。能用,但是缺点也很明显。函数之间没有从属关系,但是多有依赖,而且没有划分出各种对象和类型。 如果以完全的面向对象形式来设计标签类或者元素类…...
美式键盘 QWERTY 布局的起源
注:机翻,未校对。 The QWERTY Keyboard Is Tech’s Biggest Unsolved Mystery QWERTY 键盘是科技界最大的未解之谜 It’s on your computer keyboard and your smartphone screen: QWERTY, the first six letters of the top row of the standard keybo…...
【JavaEE】HTTP(2)
🤡🤡🤡个人主页🤡🤡🤡 🤡🤡🤡JavaEE专栏🤡🤡🤡 🤡🤡🤡下一篇文章:【JavaEE】HTTP协议(…...
LinuxShell编程2——shell搭建Discuzz论坛网站
目录 一、环境准备 ①准备一台虚拟机 ②初始化虚拟机 1、关闭防火墙 2、关闭selinux 3、配置yum源 4、修改主机名 二、搭建LAMP环境 ①安装httpd(阿帕奇apache)服务器 查看是否安装过httpd 启动httpd 设置开机启动 查看状态 安装网络工具 测试 ②安装…...
.NET MAUI开源架构_1.学习资源分享
最近需要开发Android的App,想预研下使用.NET开源架构.NET MAUI来开发App程序。因此网上搜索了下相关资料,现在把我查询的结果记录下,方便后面学习。 1.官方文档 1.1MAUI官方学习网站 .NET Multi-Platform App UI 文档 - .NET MAUI | Micro…...
Unsloth 微调 Llama 3
本文参考: https://colab.research.google.com/drive/135ced7oHytdxu3N2DNe1Z0kqjyYIkDXp 改编自:https://blog.csdn.net/qq_38628046/article/details/138906504 文章目录 一、项目说明安装相关依赖下载模型和数据 二、训练1、加载 model、tokenizer2、…...
热修复的原理
热修复的原理 水一篇哈,完事儿后删掉热修复的原理 水一篇哈,完事儿后删掉 热修复的原理 Java虚拟机 —— JVM 是加载类的class文件的,而Android虚拟机——Dalvik/ART VM 是加载类的dex文件,而他们加载类的时候都需要ClassLoader,…...
【对顶堆 优先队列】2102. 序列顺序查询
本文涉及知识点 对顶堆 优先队列 LeetCode 2102. 序列顺序查询 一个观光景点由它的名字 name 和景点评分 score 组成,其中 name 是所有观光景点中 唯一 的字符串,score 是一个整数。景点按照最好到最坏排序。景点评分 越高 ,这个景点越好。…...
Go 语言中的互斥锁 Mutex
Mutex 是一种互斥锁,名称来自 mutual exclusion,是一种用于控制多线程对共享资源的竞争访问的同步机制。在有的编程语言中,也将其称为锁(lock)。当一个线程获取互斥锁时,它将阻止其他线程对该资源的访问,直到该线程释放锁。这可以防止多个线程对共享资源进行冲突访问,从而…...
Phi-4-Reasoning-Vision基础操作:图片预览、参数调整、结果复制与导出功能
Phi-4-Reasoning-Vision基础操作:图片预览、参数调整、结果复制与导出功能 1. 工具概览 Phi-4-Reasoning-Vision是一款基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具。它专为双卡4090环境优化,通过Streamlit搭建了直观的宽屏交…...
H5与原生App高效通信:DSBridge桥方法实战解析
1. 为什么需要DSBridge? 在混合开发中,H5页面经常需要调用摄像头、地理位置等原生功能,而原生App也需要获取H5页面的数据更新。传统通信方式(如URL Scheme拦截)存在三个痛点:协议维护成本高(需…...
《Linux网络编程》2.Socket编程(UDP/TCP)
💡Yupureki:个人主页 ✨个人专栏:《C》 《算法》《Linux系统编程》《高并发内存池》《MySQL数据库》 《个人在线OJ平台》《Linux网络编程》 🌸Yupureki🌸的简介: 目录 1. UDP编程 1.1 常用接口 1.1.1 socket() – 创建套接字 1.1.2 bin…...
springcloud项目如何禁用三方依赖的拦截器
背景: 原始代码中有一个自定义的通用依赖,这个依赖中有很多通用方法和拦截器供整个系统使用。 需求: 禁用其中一个拦截器,保留其他方法和拦截器,过滤器等。 拦截器介绍 原有拦截器,自己封装了一个jdk&#…...
SEO_快速见效的站内SEO优化检查清单与方法
SEO:快速见效的站内SEO优化检查清单与方法 在当今竞争激烈的互联网市场中,快速见效的站内SEO优化尤为重要。无论你是新站点的创建者,还是老站点的运营者,站内SEO优化都能帮助提升网站的搜索引擎排名,吸引更多访客。本文将带你了解…...
别再只盯着Protobuf了!从DDS到Thrift,聊聊不同IDL在自动驾驶和机器人项目里的真实选型
自动驾驶与机器人系统中的IDL选型实战:从DDS到Thrift的深度解析 在自动驾驶和机器人系统的开发中,接口定义语言(IDL)的选择往往决定了整个通信架构的成败。当激光雷达每秒产生数十万点云数据,当多个传感器需要在毫秒级完成数据融合ÿ…...
从开题到答辩,AI全程辅助是一种怎样的体验?
2026年,毕业论文的写作方式已经发生了根本性变化。从开题到答辩,AI工具深度嵌入每一个环节,但这届毕业生也逐渐认清一个事实:AI是副驾驶,你才是驾驶员-1。以下是基于2026届毕业生真实经历的论文全程实录。 一、开题阶段…...
实战指南:基于快马平台与yolov11快速开发货架商品检测系统
今天想和大家分享一个最近用yolov11实现的零售商品检测项目,整个过程在InsCode(快马)平台上完成得特别顺利。这个系统可以自动识别超市货架上的商品,特别适合库存管理或者智能结算场景。 项目背景与需求分析 超市货架商品识别看似简单,实际会…...
Godot资源解压器godotdec:从游戏资源保护到开发分析的技术实践
Godot资源解压器godotdec:从游戏资源保护到开发分析的技术实践 【免费下载链接】godotdec An unpacker for Godot Engine package files (.pck) 项目地址: https://gitcode.com/gh_mirrors/go/godotdec 在游戏开发与资源管理领域,Godot引擎的.pck…...
ArcGIS Pro用户必看:解决CAD转SHP后坐标系丢失的完整配置流程(附Python脚本)
ArcGIS Pro用户必看:解决CAD转SHP后坐标系丢失的完整配置流程(附Python脚本) 当你从CAD图纸转换到SHP格式时,最令人头疼的问题莫过于坐标系信息的丢失。想象一下,你精心准备的规划图纸在GIS软件中变成了一堆无法定位的…...
