redis学习笔记(五)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis学习笔记(五)

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) 0
127.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>


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
9月前
|
缓存 NoSQL Redis
Redis雪崩
Redis雪崩
84 0
|
3月前
|
NoSQL API Redis
Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
111 16
|
9月前
|
存储 缓存 NoSQL
|
9月前
|
存储 NoSQL Go
Redis 双端链表
Redis 双端链表
54 0
|
9月前
|
存储 SQL NoSQL
[Redis]——初识Redis
[Redis]——初识Redis
|
NoSQL 安全 Redis
|
缓存 NoSQL 关系型数据库
redis-1
redis-1
63 1
|
存储 缓存 NoSQL
Redis为什么那么快
Redis为什么那么快
127 1
Redis为什么那么快
|
存储 NoSQL 中间件
redis
redis
60 0
|
存储 缓存 NoSQL
Redis初探
本篇深入介绍了Redis(Remote Dictionary Server)这一开源的内存数据存储系统,以及它在现代应用开发中的用途和优势。首先,我们对Redis进行了初步探索,解释了Redis是什么,它的主要特点以及适用场景。接着,我们详细讨论了Redis的安装和配置过程,提供了在Linux环境下安装Redis的步骤,并展示了如何启动和关闭Redis服务器。
231 0