百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Redis 哈希(Hash)基本操作(redis 哈希 数据结构)

mhr18 2024-11-14 16:24 39 浏览 0 评论

Redis 哈希(Hash)--基本操作

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

---------------------------------------------------------------------------------------

00HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。

hset myhash filed1 aa 
192.168.0.110:6379>hset user:1 name duhaozhao ---"user:1"作为一个key
(integer) 1
192.168.0.110:6379> hget user:1
(error) ERR wrong number of arguments for 'hget' command
192.168.0.110:6379> hget user:1 name
"duhaozhao"

01HGET key field 获取存储在哈希表中指定字段的值。

hget myhash filed1

1HDEL key field1 [field2]删除一个或多个哈希表字段

hdel myhash filed1

2HEXISTS key field查看哈希表 key 中,指定的字段是否存在。

hexists myhash field22

(integer) 1

4HGETALL key 获取在哈希表中指定 key 的所有字段和值

127.0.0.1:6379> hgetall hm_xl
1) "01"
2) "\"mx\""
3) "00"
4) "\"xx\""
5) "02"
6) "gaozhong"
7) "03"
8) "dazhuan"

5HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment 。

hincrby myhash field3 1
(integer) 6
192.168.0.110:6379> hincrby myhash field3 10
(integer) 16
192.168.0.110:6379> hincrby myhash field3 -1
(integer) 15

6HINCRBYFLOAT key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

7HKEYS key 获取所有哈希表中的字段

192.168.0.110:6379>hkeys myhash
1) "field"
2) "field2"
3) "field21"
4) "field22"

8HLEN key 获取哈希表中字段的数量

127.0.0.1:6379> hlen hm_xl
(integer) 2
127.0.0.1:6379>

9HMGET key field1 [field2] 获取所有给定字段的值

hmget myhash field field2

10HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。

hmset myhash field hello field2 world

12HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值。

192.168.0.110:6379>hsetnx myhash field2 44
(integer) 0
192.168.0.110:6379> hsetnx myhash field24 44
(integer) 1

13HVALS key 获取哈希表中所有值。

hvals myhash
1) "hello"
2) "world"
3) "hello"
4) "world"

14HSCAN key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的键值对。

SCAN cursor [MATCH pattern] [COUNT count]

SCAN命令是一个基于游标的迭代器, 这意味着命令每次被调用都需要使用上一次这个调用返回的游标作为该次调用的游标参数,

以此来延续之前的迭代过程,当SCAN命令的游标参数被设置为0时,服务器将开始一次新的迭代,

而当服务器向用户返回值为0的游标时,表示迭代已结束,HSCAN同SCAN命令相同

cursor - 游标。

pattern - 匹配的模式。

count - 指定从数据集里返回多少元素,默认值为 10 。

127.0.0.1:6379> hmset h00 k1 01 k2 02 k3 03 k4 04 k5 05 k6 06 k7 07
OK
127.0.0.1:6379> hmset h00 k8 08 k9 09 k10 10 k11 11 k12 12 k13 13 k14 14
OK
127.0.0.1:6379> hgetall h00
  1) "k1"
 2) "01"
 3) "k2"
 4) "02"
 5) "k3"
 6) "03"
 7) "k4"
 8) "04"
 9) "k5"
10) "05"
11) "k6"
12) "06"
13) "k7"
14) "07"
15) "k8"
16) "08"
17) "k9"
18) "09"
19) "k10"
20) "10"
21) "k11"
22) "11"
23) "k12"
24) "12"
25) "k13"
26) "13"
27) "k14"
28) "14"
127.0.0.1:6379> hscan h00 0 match k1*#查看h00中字段以k开始的字段
1) "0"
2)  1) "k1"
    2) "01"
    3) "k10"
    4) "10"
    5) "k11"
    6) "11"
    7) "k12"
    8) "12"
    9) "k13"
   10) "13"
   11) "k14"
   12) "14"
127.0.0.1:6379> hscan h00 0 match k*2#查看h00中字段以k开始,2结束的字段
1) "0"
2) 1) "k2"
   2) "02"
   3) "k12"
   4) "12"
127.0.0.1:6379>

redis-5.0.10

2020-12-19

相关推荐

说说Redis的单线程架构(redis的单线程模型)

一句话总结Redis采用单线程处理命令请求,避免了多线程的上下文切换和锁竞争,保证原子性操作。其基于内存的高效执行和I/O多路复用模型支撑了高并发性能。网络I/O和持久化操作(如RDB/AOF)由后台...

答记者问之 - Redis 的高效架构与应用模式解析

问:极客程序员你好,请帮我讲一讲redis答:redis主要涉及以下核心,我来一一揭幕Redis的高效架构与应用模式解析Redis是一个开源的内存数据存储系统,因其高性能、丰富的数据结构和易用性...

Redis的5种核心数据结构,及其最经典的“应用场景”

Redis凭什么稳坐缓存界头把交椅?全靠这五个“身怀绝技”的数据结构!在分布式系统的江湖里,Redis就像一位身怀绝技的武林高手,而它的五大核心数据结构正是克敌制胜的五套绝学。今天咱们就来拆解这些独门...

精准定位文件包含漏洞:代码审计中的实战思维

前言最近看到由有分析梦想cms的,然后也去搭建了一个环境看了一看,发现了一个文件包含漏洞的点,很有意思,下面是详细的复现和分析,以后代码审计又多了一中挖掘文件包含漏洞的新思路环境搭建下载https...

ARDM:一款国产跨平台的Redis管理工具

ARDM(AnotherRedisDesktopManager)是一款免费开源的Redis桌面管理客户端,支持Windows、Mac、Linux跨平台。功能特性ARDM提供的主要功能如...

SpringBoot的Web应用开发——Web缓存利器Redis的应用!

 Web缓存利器Redis的应用Redis是目前使用非常广泛的开源的内存数据库,是一个高性能的keyvalue数据库,它支持多种数据结构,常用做缓存、消息代理和配置中心。本节将简单介绍Redis的使...

Windows服务器部署CRMEB开源电商系统,详细教程来了!

安装PHP已经安装过PHP的可以跳过首先安装VC运行库下载地址https://docs.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redi...

Windows系统下Redis各个安装包介绍与选择指南

简介Redis作为高性能的键值数据库,广泛应用于缓存、消息队列等场景。在Windows系统中部署Redis时,用户可以选择多种安装包以满足不同的需求。本文将详细介绍以下Redis8.0.3版本的安装...

从面试题入手,深度剖析Redis Cluster原理

揭开RedisCluster的神秘面纱**在当今数字化浪潮中,数据量呈爆炸式增长,应用程序对数据存储和处理的要求也日益严苛。Redis作为一款高性能的内存数据库,凭借其出色的读写速度和丰富的数...

给大家推荐些好的c语言代码的网站

C语言,那就来推荐几个吧,部分含有C++:1、TheLinuxKernelArchives(kernel.org)Linux内核源码,仅限于C,但内核庞大,不太适合新手;2、redis(redi...

Redis String 类型的底层实现与性能优化

RedisString是Redis中最基础也是应用最广泛的数据类型,它能存储文本、数字、二进制数据等多种形式的信息。深入理解其底层实现对构建高性能分布式系统至关重要。Redis字符串的底层结...

阿里面试问:Redis 为什么把简单的字符串设计成 SDS?

分享了一道面阿里的redis题,我看了以后觉得挺有意思。题目大致是这样的面试官:了解redis的String数据结构底层实现嘛?铁子:当然知道,是基于SDS实现的面试官:redis是用C语言开发的,那...

编程语言那么多,为何C语言能成为最成功的语言?

编程语言那么多,为何C语言能成为最成功的语言?2025年嵌入式岗位暴增47%,新人却还在问"C语言过时了吗"。真相是连机器人关节驱动都得靠它写,不会指针连芯片手册都看不懂。见过用Pyt...

go-zero 使用 redis 作为 cache 的 2 种姿势

在go-zero框架内,如在rpc的应用service中,其内部已经预置了redis的应用,所以我们只需要在配置中加入相关字段即可,另外,在svcContext声明redisc...

Redis事务深度解析:ACID特性、执行机制与生产实践指南

一、Redis事务的本质与核心机制Redis事务通过MULTI、EXEC、WATCH等命令实现,其本质是将多个命令序列化后一次性执行,而非传统数据库的严格事务模型。核心特点如下:命令队列化:MULT...

取消回复欢迎 发表评论: