redis数据结构之Hash

Redis数据结构之Hash

概述

Redis中的Hashes类型可以看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。

Hash相关功能(Redis客户端命令)

1)hset key field value:

为指定的key设定field/value对(键值对)。

2)hgetall key:

获取key中的所有filed-vaule

3)hsetnx key field value

如果key不存在进行插入,如果key和field都存在不进行插入

4)hget key field:

返回指定的key中的field的值

5)hmset key fields:

设置key中的多个filed/value

6)hmget key fileds:

获取key中的多个filed的值

7)hexists key field:

判断指定的key中的filed是否存在

8)hlen key:

获取key所包含的field的数量

9)hincrby key field increment:

设置key中filed的值增加increment,如:age增加20

10)hdel key field1 field2…

删除指定的key中的指定的字段的和对应的值

11)hkeys key

获取指定的key中所有的字段

12)hvals key

获取指定的key中所有的value

13)hincrbyfloat key field value

给指定的字段添加浮点数的值

Hash相关功能(Jedis客户端API)

Redis java 客户端jedis

java测试代码如下,(maven项目的创建与pom.xml配置,还有jedis对象的创建都在redis数据结构之String)

/**
     *Hash类型数据的API测试
     */
    @Test
    public void testHash(){
        jedis.hset("jedis-h-key-01","name","zhangsan");

        String name = jedis.hget("jedis-h-key-01", "name");
        System.out.println(name);

        HashMap fields = new HashMap();
        fields.put("password","123");
        fields.put("age","18");
        jedis.hmset("jedis-h-key-01",fields);

        Set hkeys = jedis.hkeys("jedis-h-key-01");
        System.out.println("所有的key如下:");
        for(String key :hkeys){
            System.out.println(key);
        }

        List hvals = jedis.hvals("jedis-h-key-01");
        System.out.println("所有的val如下:");
        for(String val:hvals){
            System.out.println(val);
        }

        System.out.println("一次性取出所有的key-value对:");
        Map hgetAll = jedis.hgetAll("jedis-h-key-01");
        Set.Entry> entrySet = hgetAll.entrySet();
        for (Map.Entry ent:entrySet){
            System.out.println(ent.getKey()+":"+ent.getValue());
        }

    }

你可能感兴趣的:(redis)