Redis : Hash类型

哈希类型 

哈希类型的命令

hset

设置key指定的字段(field)的值(value) 

也可以设置多组field和value

hget 

获得哈希中指定字段的值

如果该字段为空或者key为空则返回nil

hexists

判断哈希中是否有该字段的值

如果有则会返回1,否则返回0

 

hdel

删除哈希中该字段对应的值

返回本次删除的字段个数

也可以一次删除多个哈希中的字段

hkeys

获得哈希中的全部字段

hvals

获得哈希中的所有值

hgetall

获得哈希中的全部字段和全部的值

hmget

一次性获得哈希中的多个字段

hlen

获得哈希中所有字段的个数

hstrlen

获得哈希中字段的长度

hsetnx

字段不存在下,设置哈希中的字段和值

返回1表示设置成功,0表示设置失败

hincrby

对哈希中对应字段的值添加指定的值(+/-)

hincrfloat

对哈希中的字段中的值进行浮点数运算

 

注:如果只对单个的字段进行命令作用,时间复杂度为O(1),否则是O(N)N为字段(field)的个数

带H的命令必须保证作用的是哈希类型

内部编码

哈希的内部编码一共有两种:ziplist(压缩列表)和hashtable(哈希表)

当field的个数较少,并且没有特别大的value,内部编码为ziplist,否则会自动转换为hashtable

压缩的本质,是对数据进行重新编码

可以再redis的配置文件中修改默认的配置(ziplist -> hashtable)

 

使用场景

用户信息的保存

关系型数据库保存用户信息

userIduesrNameage
1zhangsan2
2lisi3

映射关系表示用户信息

相⽐于使⽤JSON格式的字符串缓存用户信息,哈希类型变得更加直观,并且在更新操作上变得更灵活。

作为缓存

如果使用String(json)的格式表示UserInfo

  • 只是想获取某个field,或者修改某个field
  • 就需要把整个json都读出来,操作field,转成json字符串,再写回去

如果用哈希的方式表示UserInfo

  • 就可以使用field表示对象的属性
  • 此时修改和获取任何一个属性就会十分的方便

注:使用hash进行field的读取和修改,确实是十分的方便,但是会使其内部编码再ziplist和hashtable中进行切换,造成内存的消耗

 

希望能对大家有所帮助!!!!!!!

 

 

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

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

相关文章

【Chipyard】 conda 环境安装与使用

一、Conda 安装(以 Miniconda 为例) Conda 是一个强大的环境管理工具,可用于创建、隔离和管理不同的 Python/R 环境。以下是在 Ubuntu 上安装和使用的完整流程: 1. 下载 Miniconda 安装包 bash # 下载最新版 Miniconda3&#…

【愚公系列】《生产线数字化设计与仿真》009-颜色分类站仿真(设置颜色分类站的仿真序列)

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! &#x1f…

ios 26官宣:car play升级提升车载体验

苹果公司正式官宣推出ios 26,该版本为ios 18的后续版本。此次软件更新在命名上焕然一新,设计层面更是实现了全面革新。其中,car play界面迎来全新升级,同时还新增了car play ultra功能。借助这一功能,用户不仅能够使用…

Mac 上使用 mysql -u root -p 命令,出现“zsh: command not found: mysql“?如何解决

一、确定 MySQL 安装路径: 如果你是使用 Homebrew 安装的 MySQL,通常安装路径是 /usr/local/mysql/bin 如果你是通过官方 DMG 安装包安装的 MySQL,默认安装路径可能是 /usr/local/mysql/bin 你可以在终端中使用以下命令来查找 MySQL 的安装…

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表 Microsoft Power BI 可帮助您通过交互式报表准备数据并对数据进行可视化。 如果您是 Power BI 的新用户,可能很难知道从哪里开始,并且创建报表可能很耗时。 通过适用于 Power BI …

Android11三网共存

一、优先级基本知识介绍 Android6.0之后系统中优先级设置都是根据Score分值来设置优先级,分值0-100,数值越高,越优先。 SIM卡网络 50 wifi网络 60 有线网络 70手机网络设置都有自己的Factory设置类,都继承自NetworkFactory.j…

【散刷】二叉树基础OJ题(三)

📝前言说明: 本专栏主要记录本人的基础算法学习以及刷题记录,使用语言为C。 每道题我会给出LeetCode上的题号(如果有题号),题目,以及最后通过的代码。没有题号的题目大多来自牛客网。对于题目的…

什么是数据交换?有哪些数据交换方式?

目录 一、数据交换是什么 二、数据交换面临的挑战 1. 数据格式差异 2. 数据标准不统一 3. 安全与隐私问题 4. 网络与性能问题 三、常见的数据交换方式 1. 文件交换 2. 数据库直连 3. 中间件交换 4. API接口交换 四、数据交换的发展趋势 1. 实时性要求提高 2. 标准…

C#winform画图代码记录

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 坐标变换 {public partial class Fo…

python打卡day50

import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt import numpy as np# 定义通道注意力 class ChannelAttention(nn.Module):def __i…

Go语言多线程问题

打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…

ateⅹⅰt()的用法

在C/C++中, atexit() 函数用于注册程序退出时需要调用的函数,即使程序通过 main() 函数返回、 exit() 函数退出或异常终止,这些注册的函数也会被执行。以下是其详细用法: 1. 函数原型与头文件 #include <cstdlib> // C++中需包含此头文件 int atexit(void (*functio…

【大模型】 使用llama.cpp 进行模型转换和量化

目录 1 相关知识 ■llama.cpp ■GGUF 格式 ■量化 2 详细步骤 克隆 llama.cpp 仓库 安装依赖 配置 CMake 构建 构建项目 验证安装 转换 safetensors 为 FP16 GGUF 量化模型 (Q4_K_M) 测试量化模型 1 相关知识 ■llama.cpp llama.cpp是一个开源的 C/C++ 库,旨…

大数据学习(133)-Hive数据分析2

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…

IDEA 连接 Docker 一键打镜像

首先&#xff0c;检查 IDEA 是否安装了 Docker 插件&#xff1a; 版本比较新的 IDEA 默认都安装了这个插件&#xff0c;如果没有安装&#xff0c;安装一下。 确保我们虚拟机上安装了 Docker 和 Docker-compose&#xff0c;并启动了 Docker。 找到 IDEA 下方的 Services tab 栏…

第六讲——一元函数微分学的应用之中值定理、微分等式与微分不等式

文章目录 连续函数性质定理定理1 有界与最值定理定理2 介值定理定理3 平均值定理定理4 零点定理定理5 费马定理导数介值定理(达布定理) 中值定理罗尔定理拉格朗日中值定理柯西中值定理泰勒公式 讨论方程的根问题——微分等式证明不等式问题使用函数的性质(单调性、凹凸性、最值…

2025.06.11【Ribo-seq】|用CPAT预测sORF序列的编码潜能

文章目录 前言一、准备工作1. 安装CPAT2. 下载物种特异性模型 二、准备sORF核酸序列1. 获取sORF的拼接核酸序列示例脚本&#xff08;假设已获得外显子fasta&#xff09;&#xff1a; 三、运行CPAT预测编码潜能1. 准备CPAT模型和hexamer表2. 运行CPAT 四、结果解读五、常见问题与…

Hive面试题汇总

一、hive架构相关 遇到这类问题&#xff0c;可以灵活的去回答&#xff0c;比如可以结合平时使用hive的经验作答&#xff0c;也可以结合下图从数据的读入、解析、元数据的管理&#xff0c;数据的存储等角度回答&#xff1a; 二、hive的特点 本题主要为了考察对hive的整体使用…

树莓派超全系列教程文档--(57)如何设置 Apache web 服务器

如何设置 Apache web 服务器 设置 Apache web 服务器安装 Apache测试 web 服务器更改默认网页 为 Apache 安装 PHP 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 设置 Apache web 服务器 Apache 是一款流行的 web 服务器应用程序&#xff0c;您…

(九)现代循环神经网络(RNN):从注意力增强到神经架构搜索的深度学习演进

现代循环神经网络的内容&#xff0c;将介绍几种先进的循环神经网络架构&#xff0c;包括门控循环单元&#xff08;GRU&#xff09;、长短期记忆网络&#xff08;LSTM&#xff09;的变体&#xff0c;以及注意力机制等。这些内容将帮助你更深入地理解循环神经网络的发展和应用。 …