hash哈希操作

hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象.其操作跟String操作非常类似

 

1.将哈希表 key 中的字段 field 的值设为 value HSET key field value 

2.获取存储在哈希表中指定字段的值。HGET key field 

3.同时将多个 field-value (域-值)对设置到哈希表 key 中。HMSET key field1 value1 [field2 value2 ] 

4.获取所有给定字段的值HMGET key field1 [field2] 

5.查看哈希表 key 中,指定的字段是否存在。HEXISTS key field 

6.删除一个或多个哈希表字段HDEL key field1 [field2] 

7.将哈希表 key 中的字段 field 的值设为 value 。HSET key field value 

8.获取哈希表中字段的数量HLEN key 

9.获取所有哈希表中的字段HKEYS key 

10.获取哈希表中所有值HVALS key 

11.获取在哈希表中指定 key 的所有字段和值HGETALL key 

12.为哈希表 key 中的指定字段的整数值加上增量 increment 。HINCRBY key field increment 

 

hash代码操作:

package com.study.util;

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

import redis.clients.jedis.Jedis;

public class RedisHash {

    public static void main(String[] args) {
        Jedis jedis = RedisUtil.getJedis();
        //将user的id赋值为1
        jedis.hset("user", "id", "1");
        //获取user的id值
        String id = jedis.hget("user", "id");
        System.out.println("id:" + id);
        
        //设置user的name为zs,age为18
        Map<String,String> hash = new HashMap<>();
        hash.put("name", "zs");
        hash.put("age", "18");
        jedis.hmset("user", hash);
        //获取user的id,name,age值
        List<String> hList = jedis.hmget("user", "id","name","age");
        System.out.print("user的id,name,age值为:");
        for (String value : hList) {
            System.out.print(value);
        }
        System.out.println();
        
        //查看user是否有id字段
        boolean hexists = jedis.hexists("user", "id");
        System.out.println("user是否有id字段:" + hexists);
        
        //删除user中的age字段
        jedis.hdel("user", "age");
        System.out.print("删除user中的age字段后user的字段:");
        //获取user的所有字段
        Set<String> keys = jedis.hkeys("user");
        for (String key : keys) {
            System.out.print(key);
        }
        System.out.println();
        //将user的name值改为zhangsan
        jedis.hset("user", "name", "zhangsan");
        //获取user字段的数量
        long length = jedis.hlen("user");
        System.out.println("user字段的数量:" + length);
        
        //获取user字段的所有值
        List<String> values = jedis.hvals("user");
        System.out.print("user字段所有值:");
        for (String value : values) {
            System.out.print(value);
        }
        System.out.println();
        
        //获取user的所有字段及对应的值
        Map<String,String> map = jedis.hgetAll("user");
        for (String key : map.keySet()) {
            System.out.println(key + "->" + map.get(key));
        }
        
        jedis.close();
    }
}
View Code

 

代码git地址:https://gitee.com/sjcq/redis.git

posted on 2018-04-30 11:53  四季常青  阅读(207)  评论(0编辑  收藏  举报

导航