美文网首页
Redis5数据类型3-Hash

Redis5数据类型3-Hash

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2022-03-17 09:59 被阅读0次

1. Hash散列

是指Redis中存储的value值是Hash散列类型的。而Hash也有自己的数据结构: 它是由field和关联的value组成的map键值对。field和value是字符串类型,一个hash中最多包含2^32-1键值对。


Hash.png

2. Hash指令

2.1 赋值

  • 设置一个字段值
    hset key field value 插入返回1,更新返回0
  • 设置多个字段值
    hmset key field value [field value ...]
  • 当字段不存在时赋值
    hsetnx key field value
127.0.0.1:6379> hset message m1 11111
1
127.0.0.1:6379> hmset message m2 22222 m3 33333 m4 44444
OK
127.0.0.1:6379> hsetnx message m2 222
0
127.0.0.1:6379> hset message m3 333
0
127.0.0.1:6379> hsetnx message m5 55555
1
127.0.0.1:6379>

2.2 取值

  • 获取一个字段值
    hget key field
  • 获取多个字段值
    hmget key field [field ...]
  • 获取所有字段值
    hgetall key
127.0.0.1:6379> hget message m1
11111
127.0.0.1:6379> hmget message m1 m2 m3
11111
22222
333
127.0.0.1:6379> hgetall message
m1
11111
m2
22222
m3
333
m4
44444
m5
55555
127.0.0.1:6379>

2.3 获取字段数量

hlen key

127.0.0.1:6379> hlen message
5
127.0.0.1:6379>

2.4 获取字段名或字段值

hkeys key
hvals key

127.0.0.1:6379> hkeys message
m1
m2
m3
m4
m5
127.0.0.1:6379> hvals message
11111
22222
333
44444
55555
127.0.0.1:6379>

2.5 判断字段是否存在

hexists key field

127.0.0.1:6379> hexists message m5
1
127.0.0.1:6379> hexists message m6
0
127.0.0.1:6379>

2.6 数值字段增加

  • 增加整数语法:hincrby key field increment
  • 增加小数语法:hincrbyfloat key field increment
127.0.0.1:6379> hset message number 5
1
127.0.0.1:6379> hincrby message number 2
7
127.0.0.1:6379> hget message number
7
127.0.0.1:6379> hincrbyfloat message number 0.38
7.38
127.0.0.1:6379> hget message number
7.38
127.0.0.1:6379>

2.7 删除字段

hdel key field [field ...]

127.0.0.1:6379> hgetall message
m1
11111
m2
22222
m3
333
m4
44444
m5
55555
number
7.38
127.0.0.1:6379> hdel message number
1
127.0.0.1:6379> hgetall message
m1
11111
m2
22222
m3
333
m4
44444
m5
55555
127.0.0.1:6379>

3. Hash的使用

因hash有key和field 2个标志,可用其进行一些统计,比如:

  • 统计个人好友:hset 我id 他id date
  • 关注商品数

不适合hash的情况:

  • 需要位运算,用字符串,因为有bitmap操作
  • 使用过期功能,因为Redis的键过期功能目前只能对键进行过期操作,而不能对散列的字段进行过期操作

相关文章

  • Redis5数据类型3-Hash

    1. Hash散列 是指Redis中存储的value值是Hash散列类型的。而Hash也有自己的数据结构: 它是由...

  • Redis(二)-基本数据类型

    概述 本节主要分析Redis5大数据类型(对应上一节分析的RedisObject中Type属性:String/Li...

  • Redis5数据类型1-String

    上次说到Redis5提供六种数据类型来存储值:string字符串类型、hash散列类型、list列表类型、set集...

  • Redis Stream类型的使用

    一、背景 最近在看redis这方面的知识,发现在redis5中产生了一种新的数据类型Stream,它和kafka的...

  • Redis5数据类型2-List

    1. List简介 Redis中List是基于Linked List实现,双向无环链表,其中元素是字符串类型。特点...

  • Redis5数据类型6-Stream

    1. Stream 类型介绍 Stream是Redis5.0 引入的一个新的数据类型,官方把它定义为:以更抽象的方...

  • Redis5数据类型5-SortedSet集合

    1. SortedSet集合介绍 SortedSet集合与Set集合类似,有以下特点: 数据是有序的,无重复的 每...

  • Redis5数据类型4-Set集合

    1. Set集合介绍 Set数据有几个特点: 无序的、去重的 元素是字符串类型 最多包含232-1个元素 2. S...

  • mac和centos7 安装redis5

    mac 安装redis5 安装 修改redis密码, 查找requirepass 启动redis centos7 ...

  • centos7安装redis5

    1. 下载redis5最新版:下载地址[http://download.redis.io/releases/] 2...

网友评论

      本文标题:Redis5数据类型3-Hash

      本文链接:https://www.haomeiwen.com/subject/cyhpdrtx.html