redis学习笔记(五)

news/2024/11/16 18:38:49/

文章目录

  • hash(哈希)
    • (1)设置指定键的属性/域
    • (2)获取指定键的域/属性的值
    • (3)获取hash的所有域值对
    • (4)删除指定键的域/属性
    • (5)判断指定属性/域是否存在于当前键对应的hash中
    • (6)属性值自增自减

hash(哈希)

hset key field value

hget key field

hgetall info

hmget key field1 field2 …

hincrby key field number

专门用于结构化的数据信息。对应的就是map/结构体

结构:

键key:{域field: 值value,域field: 值value,域field: 值value,
}

(1)设置指定键的属性/域

设置指定键的单个属性

hset key field value

设置键 user_1的属性namexiaoming

127.0.0.1:6379> hset user_1 name xiaoming   # user_1没有会自动创建
(integer) 1
127.0.0.1:6379> hset user_1 name xiaohei    # user_1中重复的属性会被修改
(integer) 0
127.0.0.1:6379> hset user_1 age 16          # user_1中不存在的属性会被新增
(integer) 1
127.0.0.1:6379> hset user:1 name xiaohui    # user:1会在redis界面操作中以:作为目录分隔符
(integer) 1
127.0.0.1:6379> hset user:1 age 15
(integer) 1
127.0.0.1:6379> hset user:2 name xiaohong age 16  # 一次性添加或修改多个属性

(2)获取指定键的域/属性的值

获取指定键所有的域/属性

hkeys key

获取键user的所有域/属性

127.0.0.1:6379> hkeys user:2
1) "name"
2) "age"
127.0.0.1:6379> hkeys user:3
1) "name"
2) "age"
3) "sex"

获取指定键的单个域/属性的值

hget key field

获取键user:3属性name的值

127.0.0.1:6379> hget user:3 name
"xiaohong"

获取指定键的多个域/属性的值

hmget key field1 field2 ...

获取键user:2属性nameage的值

127.0.0.1:6379> hmget user:2 name age
1) "xiaohong"
2) "16"

获取指定键的所有值

hvals key

获取指定键的所有域值对

127.0.0.1:6379> hvals user:3
1) "xiaohong"
2) "17"
3) "1"

(3)获取hash的所有域值对

127.0.0.1:6379> hset user:1 name xiaoming age 16 sex 1
(integer) 3
127.0.0.1:6379> hgetall user:1
1) "name"
2) "xiaoming"
3) "age"
4) "16"
5) "sex"
6) "1"

(4)删除指定键的域/属性

hdel key field1 field2 ...

删除键user:3的属性sex/age/name,当键中的hash数据没有任何属性,则当前键会被redis删除

hdel user:3 sex age name

(5)判断指定属性/域是否存在于当前键对应的hash中

hexists   key  field

判断user:2中是否存在age属性

127.0.0.1:6379> hexists user:3 age
(integer) 0
127.0.0.1:6379> hexists user:2 age
(integer) 1
127.0.0.1:6379> 

(6)属性值自增自减

hincrby key field number

给user:2的age属性在原值基础上+/-10,然后在age现有值的基础上-2

# 按指定数值自增
127.0.0.1:6379> hincrby user:2 age 10
(integer) 77
127.0.0.1:6379> hincrby user:2 age 10
(integer) 87# 按指定数值自减
127.0.0.1:6379> hincrby user:2 age -10
(integer) 77
127.0.0.1:6379> hincrby user:2 age -10
127.0.0.1:6379> hset info name rain
(integer) 1
127.0.0.1:6379> hget info name
"rain"127.0.0.1:6379> hset info name lz age 21
(integer) 0127.0.0.1:6379> hget info name
"lz"127.0.0.1:6379> hset info name root age 25
(integer) 0
127.0.0.1:6379> hget info name
"root"
127.0.0.1:6379> hgetall info
1) "name"
2) "root"
3) "age"
4) "25"
127.0.0.1:6379> hmget info name age
1) "root"
2) "25"
127.0.0.1:6379> hdel info age
(integer) 1
127.0.0.1:6379> hgetall info
1) "name"
2) "root"
127.0.0.1:6379> hexists info name
(integer) 1
127.0.0.1:6379> hexists info age
(integer) 0
127.0.0.1:6379> hset info age 21
(integer) 1
127.0.0.1:6379> hgetall info
1) "name"
2) "root"
3) "age"
4) "21"
127.0.0.1:6379> hincrby info age 5
(integer) 26
127.0.0.1:6379> hget info age
"26"
127.0.0.1:6379>
127.0.0.1:6379> hget info age
"26"
127.0.0.1:6379> hkeys info
1) "name"
2) "age"
127.0.0.1:6379> hvals info
1) "root"
2) "26"
127.0.0.1:6379>


http://www.ppmy.cn/news/1028040.html

相关文章

类与对象(入门)

目录 1.前言 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5.类的作用域 6.类的实例化 7. 结构体内存对齐规则 8.this指针 8.1 this指针的引出 8.2 this指针的特性 1.前言 C 是 基于面向对象 的, 关注 的是 对象 ,…

99. for循环练习题-3种方式输出0-9

【目录】 文章目录 99. for循环练习题-3种方式输出0-91. for循环和while循环的区别2. 输出 0~(n-1)的数字2.1 基础代码2.2 自定义函数代码2.3 异常处理语句代码 【正文】 99. for循环练习题-3种方式输出0-9 1. for循环和while循环的区别 for循环和while循环都用于重复执行特定…

Netty:ByteBuf跳过一定长度的字节

说明 io.netty.buffer.ByteBuf可以调用skipBytes(int length)函数跳出length个字节,并将buffer的readerIndex增长length。 示例 package com.thb;import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.util.ByteProcessor;public …

运维监控学习笔记2

硬件监控: 1)使用IPMI 2)机房巡检 路由器和交换机: 使用SNMP(简单网络管理协议)进行监控。 Linux 安装snmp: yum install -y net-snmp net-snmp-utils 说明:net-snmp是安装在snm…

JavaScript基础之基于数据类型和引用数据类型

原文合集地址如下,有需要的朋友可以关注 本文地址 数据类型 JavaScript的数据类型有7中,包括6个基本类型和一个引用类型 基本数据类型:number, string, boolean, null, undefined, symbol 引用数据类型:object(数组…

Linux命令 -- vim

Linux命令 -- vim 前言一般模式光标移动复制粘贴内容查找 底线命令行模式 前言 用vim指令进入文件。 刚进入时是命令行模式,也叫一般模式。 按i或者insert进入编辑模式,此时可以编辑文件内容。 按esc可从编辑模式退回到一般模式,输入冒号进…

mysql 技术总结

一、mysql 索引(左小右大) 下图中为二叉树 mysql索引类型以及数据结构 BTREE结构 BTree又叫多路平衡搜索树,一颗m叉的BTree特性如下: 树中每个节点最多包含m个孩子。 除根节点与叶子节点外,每个节点至少有[ceil(m/2…

从零开始学Python(三)函数与lambda表达式

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Python的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.函数 1.函数与方法的区别 2.函数的定…