Redis【4】—— Hash类型

Redis【4】—— Hash类型

  • 四、各类型指令介绍
    • (二)Hash类型
      • 1. 基础指令
      • 2. 内部编码

四、各类型指令介绍

(二)Hash类型

1. 基础指令

hset k1 f1 v1
hget k1 f1hset k2 f2 v2 f3 v3
hget k2 f2 f3 # error,一次只能返回一个
hget k2 f2
hget k2 f3
hget k3 f2 # key不存在会返回 nil
hget k2 f22 # field不存在也会返回 nil

image.png

hexists k1 f1
hexists k1 f11 # field不存在
hexists k3 f3  # key不存在

image.png

# del 删除的是整个 hash
# 删除的是field,返回的是删除的个数
hdel k2 f2 
hdel k2 f3 hset k2 f22 v22 f33 v33
hdel k2 f22 f33

image.png

hset k2 f222 v222 f333 v333 f444 v444
keys *# 注意下方两个指令要慎重使用,因为 field-value 可能有很多
hkeys k1
hkeys k2 # 查看这个key中的所有fieldhvals k1
hvals k2 # 查看这个key中的所有field对于的valuehgetall k1 # 查看这个key所有的 field-value 
hgetall k2 hmget k2 f222 f333 # 查看这个key中指定field的value
hmget k2 f222 f333 f444

image.png
image.png
image.png

# hscan 渐进式遍历,连续执行多次就能遍历整个hash,
# 避免了遍历过程中执行时间过程导致的Redis被阻塞
hlen k1 # 获取 hash 元素的个数,时间复杂度是O(1),直接存在起来,不需要遍历
hlen k2 hsetnx k2 f5 v5 # 存在则失败
hget k2 f5
hsetnx k2 f5 v55 # 因为第一次使用hsetnx时不存在,那是正常,存在则失败hset k3 f1 1 f2 2.2
hgetall k3
hincrby k3 f1 10
hincrby k3 f1 -1
hincrbe k3 f2 0.2
hincrbe k3 f2 -0.2

image.png
image.png
image.png

2. 内部编码

hset key f1 111
OBJECT encoding keyhset key f2 222222222222...2222222222
OBJECT encoding key

image.png
我们应该怎么理解这里的ziplist 呢?字面上理解这就是 压缩链表,但是怎么理解压缩呢?**压缩的本质是:不同的数据有不同的特点,可以针对数据进行重新编码。举个粗糙的例子,aaaabbbbbbbbcccccc可以转换成4a8b6c
在哈希的内部编码中ziplisthashtable的区分并向intemstr那么不明显,那么什么时候ziplist会编码,什么时候又用hashtable编码呢?这主要看**hash-max-ziplist-entries**
和 ****hash-max-ziplist-value**这两个值。默认hash的个数<512value的字节数<64byte时才使用ziplist,当任何一个条件不满足时就会转成hashtable

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

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

相关文章

面试笔记系列六之redis+kafka+zookeeper基础知识点整理及常见面试题

目录 Redis redis持久化机制&#xff1a;RDB和AOF Redis 持久化 RDB的优点 RDB的缺点 AOF 优点 AOF 缺点 4.X版本的整合策略 Redis做分布式锁用什么命令&#xff1f; Redis做分布式锁死锁有哪些情况&#xff0c;如何解决&#xff1f; Redis如何做分布式锁&#xff1f…

termux上安装Python

Termux是一款Android平台下的终端模拟器和Linux环境应用&#xff0c;它允许用户在移动设备上访问Linux命令行界面&#xff0c;以便使用命令行工具、脚本、开发环境等功能。 要在Termux上安装Python&#xff0c;请按照以下步骤进行操作&#xff1a; 一&#xff0c;下载termux …

基于springboot+vue的校园商铺管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

数据审计 -本福德定律 Benford‘s law (sample database classicmodels _No.6)

数据审计 -本福德定律 Benford’s law 准备工作&#xff0c;可以去下载 classicmodels 数据库资源如下 [ 点击&#xff1a;classicmodels] 也可以去我的博客资源下载 文章目录 数据审计 -本福德定律 Benfords law 前言一、什么是 本福德定律&#xff1f;二、数学公式三、应用…

通讯录(下)

通讯录中我们在上一期中说明需要实现的函数&#xff0c;和需要创建的项目&#xff0c;今天我们就来实现contact.c项目中的函数实现。注意我们要在该项目中包含.h中的头文件。 1.初始化 void InitContact(contact* con) { SeqListInit(con); LoadContact(con); } 2.添加联系人…

前缀和算法题(区间次方和、小蓝平衡和、大石头的搬运工、最大数组和)

一、前缀和的原理和特点 prefix表示前缀和&#xff0c;前缀和由一个用户输入的数组生成。对于一个数组a[]&#xff08;下标从1开始&#xff09;&#xff0c;我们定义一个前缀和数组prefix[]&#xff0c;满足&#xff1a; prefix有一个重要的特性&#xff0c;可以用于快速生成p…

推荐系统实战(基于机器学习/深度学习)

文章目录 推荐系统介绍什么是推荐系统&#xff1f;推荐系统的应用为什么需要推荐系统推荐系统发展推荐系统的目标怎样评价推荐系统效果推荐系统里的常用词推荐系统经典流程推荐系统的难点与挑战涉及技术点分析为什么需要深度学习 协同过滤与矩阵分解矩阵分解中的显式与隐式特征…

数据开发流程图

背景&#xff1a;公司处于数仓开发的起步阶段&#xff0c;需要构建一个数据开发的流程 分析&#xff1a;原有业务采集混乱&#xff0c;不受调度管理监控&#xff0c;数据不存储不统一&#xff0c;需要频繁转换 行动&#xff1a;改造原有业务&#xff0c;数据开发流程图如下 结…

Stable Video文本生成视频公测地址——Scaling Latent Video Diffusion Models to Large Datasets

近期&#xff0c;Stability AI发布了首个开放视频模型——"Stable Video"&#xff0c;该创新工具能够将文本和图像输入转化为生动的场景&#xff0c;将概念转换成动态影像&#xff0c;生成出电影级别的作品&#xff0c;旨在满足广泛的视频应用需求&#xff0c;包括媒…

云原生之容器编排实践-ruoyi-cloud项目部署到K8S:Nacosv2.2.3

背景 前面搭建好了 Kubernetes 集群与私有镜像仓库&#xff0c;终于要进入服务编排的实践环节了。本系列拿 ruoyi-cloud 项目进行练手&#xff0c;按照 MySQL &#xff0c; Nacos &#xff0c; Redis &#xff0c; Nginx &#xff0c; Gateway &#xff0c; Auth &#xff0c;…

项目实战 MySQL读写分离【构建主从结构数据库(查从库)(增删改主库)】【ShardingJDBC实现读写分离】

项目实战 MySQL读写分离 1. MySQL主从复制1.1 介绍1.2 搭建1.2.1 准备工作1.2.3 从库配置 2. 读写分离案例2.2 ShardingJDBC介绍 转自-黑马 在前面基础功能实现的过程中&#xff0c;我们后台管理系统及移动端的用户&#xff0c;在进行数据访问时&#xff0c;都是直接操作数据库…

开源模型Mistral 7B+Amazon SageMaker部署指南

一、Mistral 7B简述 Mistral AI 是一家总部位于法国的 AI 公司&#xff0c;其使命是将公开可用的模型提升至最先进的性能水平。他们专注于构建快速而安全的大型语言模型&#xff08;LLM&#xff09;&#xff0c;此类模型可用于从聊天机器人到代码生成等各种任务。不久前其发布…