概述

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

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

hset

为单个字段设置值

hset key 字段名 值

127.0.0.1:6379> hset h1 username root
(integer) 1
127.0.0.1:6379> hset h1 password 123456
(integer) 1

hget

获取字段的值

hget key 字段名

127.0.0.1:6379> hget h1 username
“root”
127.0.0.1:6379> hget h1 password
“123456”

hmset

为多个字段一起设置值

hmset key 字段名1 值 字段名2 值 …

127.0.0.1:6379> hmset h2 username ledao password 333
OK

hmget

获取多个字段的值

hmget key 字段名1 字段名2 …

127.0.0.1:6379> hmget h2 username password
1)”ledao”
2)”333”

hgetall

获取全部字段的值

hgetall key

127.0.0.1:6379> hgetall h2
1)”username”
2)”ledao”
3)”password”
4)”333”

hdel

删除属性,可以一次删除一个或者多个

hdel key 字段名1 字段名2 …

127.0.0.1:6379> hdel h2 username password
(integer) 2
127.0.0.1:6379> hgetall h2
(empty list or set)

hincrby

给字段的值加一个数,这个字段的值的数据类型要为integer

hincrby key 字段名 数值

127.0.0.1:6379> hset h1 age 20
(integer) 1
127.0.0.1:6379> hgetall h1
1)”username”
2)”root”
3)”password”
4)”123456”
5)”age”
6)”20”
127.0.0.1:6379> hincrby h1 age 5
(integer) 25

hexists

判断字段是否存在,1表示存在,0表示不存在

hexists key 字段名

127.0.0.1:6379> hexists h1 age
(integer) 1
127.0.0.1:6379> hexists h1 age2
(integer) 0

hlen

获取hash属性个数

hlen key

127.0.0.1:6379> hlen h1
(integer) 3

hkeys

获取所有属性名称

hkeys key

127.0.0.1:6379> hkeys h1
1)”username”
2)”password”
3)”age”

hvals

获取所有属性值

hvals key

127.0.0.1:6379> hvals h1
1)”root”
2)”123456”
3)”25”

Java代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.ledao.jedis;

import redis.clients.jedis.Jedis;

import java.util.Map;

/**
* @author LeDao
* @company
* @create 2021-06-20 7:47
*/
public class JedisTest {

public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.0.153", 6379);
jedis.auth("123456");
//设置字段
jedis.hset("h1", "username", "root");
jedis.hset("h1", "password", "123456");
System.out.println("用户名:" + jedis.hget("h1", "username") + ",密码:" + jedis.hget("h1", "password"));
//获取全部字段
Map<String, String> map=jedis.hgetAll("h1");
for (Map.Entry<String, String> stringStringEntry : map.entrySet()) {
System.out.println(stringStringEntry.getKey()+":"+stringStringEntry.getValue());
}
jedis.close();
}
}

img