极致性能的服务器Redis之Hash类型及相关指令介绍

极致性能的服务器Redis之Hash类型及相关指令介绍

目录

1. Hash介绍

2. hset

3. hget

3. hdel

5. hkeys

6. hvals

​编辑

7. hgetall

 8. hexists

9. hmget

10. hlen

11. hsetnx

12. hincrby

13. hincrbyfloat


1. Hash介绍

Redis 哈希类型是键值对的集合,字段与值均支持字符串、数字等类型,适合建模用户信息、配置项等对象类数据。其支持单字段 / 多字段的增删改查、字段存在性判断、值自增自减等原子操作,且底层通过压缩列表或哈希表优化存储,空间利用率高、查询效率快,是 Redis 中存储结构化数据的核心类型之一。

在Redis中因为本身就是按照哈希的KV结构来进行存储的,所以当我们想要使用Redis里面的哈希的时候,实际上是哈希的哈希,在后者中,则用field来代替原本的Key位置,防止和前面的哈希名字相同,接下来我会介绍哈希在Redis中的使用。

2. hset

这个指令的话就是用来在Redis中创建一个哈希的键值对。

语法:

hset key field value

我们看下面这张图片,在Redis中的key和field的关系就像这样。一个key可以有很多个field,一个field和一个value一一对应。

我们来看下面这张图片,当我们对一个field重新使用hset时,会对它里面的value进行更新。

同时一个key也可以对应多个field。

3. hget

这个的话就是通过key和field来得到对应的value的。

语法:

hset key field value

我们看下面这张图片,hget相当于是通过两个关键字找到的v3。

它是不支持一次访问多个value的。在后面会有一些特定的指令来获取多个value的。

3. hdel

这个指令的话就是用来删除value和field的。

语法:

hdel key field

我们看下面这张图片,这个hdel删除的是field和它对应的value,不会把key给删除了的(在key还有其他对应field的时候)。所以在这张图里面我们去访问对应的f2还是可以成功的。

5. hkeys

这个的话就是用来查找这个key里面所有的field的,它的返回值也是返回这个key对应的全部field。

语法:

hkeys key

我们看下面这张图片,通过hkeys就可以查找这个k1里面使用的field了。

在下图中之所以会失败,是因为hkeys *返回空数组是因为 Redis 里*不是通配符用法,hkeys只能跟具体的键名,不能直接用通配符匹配多个哈希键。

6. hvals

这个指令的话和上面那个指令很像,只不过上面那个是返回对应的field,这个指令是返回这个key里面使用的value。

语法:

hvals key

我们看下面这张图片,通过hvals就可以拿到k1里面所有的value了。

7. hgetall

这个的话就像是上面两个指令的结合体,它可以直接获得这个key所对应的所有field和value。

语法:

hgetall key

我们看下面这张图片,通过这样的方式就可以吧直接得到这个k1里面使用的field和value了。

PS:无论是hvals,hkeys或者hgetall,他们其实在很多时候是不被推荐使用的,因为我们并不知道这个key里面到底有多少个哈希键值对,由于Redis是单线程的数据库,如果很多的话会让Redis卡住的。

 8. hexists

这个指令的话就是用来判断某一个value是否存在或者说是判断通过两个关键字是否可以找到值。

语法:

hexists key field

我们看下面的图片,如果这个value存在的话就返回1,不存在就返回0。

9. hmget

这个指令的话可以一次获取多个value的值。

语法:

hmget key field........

我们看下面这张图片,我们可以输入对应的key和field,然后就可以批量的得到对应的value。

10. hlen

这个的话就是返回这个key所对应的field的个数,如果这个key不存在的话那么就返回0.

语法:

hlen key

我们看下面这张图片,这个k1里面有三个哈希键值对,所以我们调用hlen的时候会返回3,而k2不存在,所以在这里会返回0。

11. hsetnx

这个指令的话就是在字段不存在的情况下,设置 hash 中的字段和值。

语法:

hsetnx key field value

我们看下面这张图片 ,在k1里面没有f3的时候我们用hsetnx是可以成功的,而有了之后我们再用hsetnx来插入f3是会失败的。

12. hincrby

这个指令的话就是给field对应的那个value的值进行增加或者减少操作。

语法:

hincrby key field 要加或减的值

我们看下面这张图片,这个指令的话既可以加数字也可以减数字,只要我们在原本的数字前面加一个负号就好。

13. hincrbyfloat

这个指令的话和上面那个很像,不同的地方就是这个是可以给浮点数进行浮点数的加减的。

注意:这个指令不止可以给浮点数用,他也可以给整数用,同时它的值也可以为整数。

语法:

hincrbyfloat key field 要加或减的值

我们看下面这张图片,这个hincrbyfloat即可以给整数加浮点数,也可以给浮点数加整数。

Read more

在虚拟机Ubuntu上使用Docker安装 OpenClaw

在虚拟机Ubuntu上使用Docker安装 OpenClaw

前提条件 * 已安装并运行的虚拟机(推荐使用 Ubuntu 或其他 Linux 发行版) * 虚拟机已连接网络 * 具有 sudo 或 root 权限 步骤 1:在虚拟机上安装 Docker Ubuntu/Debian 系统 # 更新包列表sudoapt update # 安装必要的依赖sudoaptinstall apt-transport-https ca-certificates curl software-properties-common # 添加 Docker GPG 密钥curl-fsSL https://download.docker.com/linux/ubuntu/gpg |sudo apt-key add - # 添加 Docker 仓库sudo add-apt-repository "deb [arch=amd64]

By Ne0inhk
Flutter 三方库 dart_test_utils 的鸿蒙化适配指南 - 实现具备单元测试增强与 Mock 逻辑简化的质量保障体系、支持端侧测试用例工程化流水线实战

Flutter 三方库 dart_test_utils 的鸿蒙化适配指南 - 实现具备单元测试增强与 Mock 逻辑简化的质量保障体系、支持端侧测试用例工程化流水线实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 dart_test_utils 的鸿蒙化适配指南 - 实现具备单元测试增强与 Mock 逻辑简化的质量保障体系、支持端侧测试用例工程化流水线实战 前言 在进行 Flutter for OpenHarmony 开发时,高质量的测试是确保应用在复杂分布式环境下不退化的唯一手段。虽然 Dart 自带了 test 库,但在处理一些重复的测试脚手架代码(如日期 Mock、随机数据生成、异常断言增强)时,依然显得繁琐。dart_test_utils 是一款旨在为 Dart 测试注入更高生产力的辅助库。本文将探讨如何在鸿蒙端构建极致、专业的测试保障体系。 一、原直观解析 / 概念介绍 1.1 基础原理 该库提供了一系列针对测试用例编写的“

By Ne0inhk

LLaMA-Factory中vLLM安装与推理速度实测

LLaMA-Factory中vLLM安装与推理速度实测 在大模型落地的工程实践中,一个常被低估却至关重要的问题浮出水面:为什么训练好的模型一上线就“卡成幻灯片”? 我们见过太多这样的场景——本地测试时响应流畅,可一旦接入真实用户请求,系统立刻陷入高延迟、频繁OOM(显存溢出)的窘境。究其根源,并非模型本身的问题,而是推理后端扛不住压力。 HuggingFace Transformers 固然强大,但它的默认推理模式为每个请求分配固定长度的 KV Cache,批处理也依赖静态 batching,面对变长输入和突发流量时显得力不从心。尤其在单卡部署、资源受限的边缘环境中,这种低效尤为致命。 有没有一种方式,能让7B级别的模型在消费级显卡上跑出“类服务级”的吞吐表现?答案是:vLLM + LLaMA-Factory 的组合拳。 为什么 vLLM 能破局? 传统推理引擎的瓶颈,本质上是显存管理和计算调度的双重失效。而 vLLM 的设计思路很像现代操作系统的内存管理——它把 KV Cache 当作虚拟内存页来处理。 这就是 PagedAttention 的核心思想:

By Ne0inhk
重过了却栽在 AIGC 上?虎贲等考 AI 双 buff 加持:降重 + 去 AI 痕迹一步到位

重过了却栽在 AIGC 上?虎贲等考 AI 双 buff 加持:降重 + 去 AI 痕迹一步到位

“查重率 10%,却被导师说‘满屏 AI 味’打回重写”“越降重越生硬,语句不通还暴露机器痕迹”—— 这是当下科研人最头疼的双重困境。随着查重系统与 AIGC 检测技术同步升级,论文安全早已不是 “重复率低” 就能通关。多数工具要么只懂同义词替换降重,要么盲目改写放大 AI 感,而虎贲等考 AI 智能写作(官网:https://www.aihbdk.com/ )的降重降 AIGC 功能,彻底跳出浅层误区,以 “语义重构 + 人文赋能” 双核心,让论文既合规达标,又兼具学术深度与真人质感。 先厘清一个关键认知:降重和降 AIGC,根本是两回事!很多人踩坑,就是因为把二者混为一谈。降重的核心是规避文字重复,解决 “与已有文献相似度高” 的问题,重点打破文本表层重合度;而降

By Ne0inhk