hash哈希操作

Posted 四季常青

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于hash哈希操作的主要内容,如果未能解决你的问题,请参考以下文章

URL的PHP​​和哈希/片段部分

从 URL 获取片段(哈希“#”后的值)[关闭]

RedisRedis 哈希 Hash 键值对集合操作 ( 哈希 Hash 键值对集合简介 | 查询操作 | 增加操作 | 修改操作 )

hash 在 perl 中的用法(转载)

memcached中hash表相关操作

hash哈希操作