使用Redis的Hash存储Java对象

Posted 醉酒的小男人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Redis的Hash存储Java对象相关的知识,希望对你有一定的参考价值。

Hash的特点

1.将具有同一类规则的数据放到redis中的一个数据容器里,便于查找数据。
2.使用hash 省内存。在hash类型中,一个key可以对应多个field,一个field对应一个value。将一个对象存储为hash类型的好处之一:较于每个字段都单独存储成string类型来说,更能节约内存。

代码实现

package com.redisdemo;

import redis.clients.jedis.Jedis;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class RedisHashDemo {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1",6379);
        List<User> userList = getUserList();
        for (User user : userList){
            Map<String,String> map = new HashMap<>();
            map.put("id",user.getId());
            map.put("name",user.getName());
            jedis.hmset(user.getId(),map);
            Map userObj =jedis.hgetAll(user.getId());
            System.out.println(userObj);
            String name =jedis.hget(user.getId(),"name");
            System.out.println("按id和name取值:"+name);
        }
        // 4.释放资源
        jedis.close();

    }

    private static List<User> getUserList(){
        List<User> userList = new ArrayList<>();
        User user1 = new User();
        user1.setId("1");
        user1.setName("王八1");

        User user2 = new User();
        user2.setId("2");
        user2.setName("王八2");
        userList.add(user1);
        userList.add(user2);
        return userList;
    }
}

以上是关于使用Redis的Hash存储Java对象的主要内容,如果未能解决你的问题,请参考以下文章

Redis 基础 -- Redis数据类型之hashredis原则string存储对象和hash存储对象对比

redis常用数据类型之hash

redis常用数据类型之hash

Redis 的数据类型 - Hash 对象类型

Redis hash

大数据之Redis:Redis数据类型Hash及相关的命令行操作