使用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对象的主要内容,如果未能解决你的问题,请参考以下文章