一、Redis 哈希(Hash)

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特地适宜用于存储对象。

Redis 中每个 hash 能够存储 232 - 1 键值对(40多亿)。

简略示例:

127.0.0.1:6379> HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000 OK 127.0.0.1:6379> HGETALL runoobkey 1) "name" 2) "redis tutorial" 3) "description" 4) "redis basic commands for caching" 5) "likes" 6) "20" 7) "visitors" 8) "23000"

二、Hash类型的操作命令

1、hset

hset:设置值。格局是:hset hash的key 项的key 项的值

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;/** * redis中对于hash类型的: hset 操作示例 * hset:设置值。格局是:hset hash的key 项的key 项的值 */public class Hash_hset_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        /**         * 示例1: hset hash的key 项的key 项的值         */        jedis.hset("myhash","id","3");        jedis.hset("myhash","name","xiaohong");        jedis.hset("myhash","age","13");    }}

2、hmset

hmset:同时设置多对值。格局是:hmset hash的key 项的key 项的值。(项的key和项的值能够多对)

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;import java.util.HashMap;import java.util.Map;/** * redis中对于hash类型的: hmset 操作示例 * hmset:同时设置多对值。格局是:hmset hash的key 项的key 项的值。(项的key和项的值能够多对) */public class Hash_hmset_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        /**         * 示例1: hmset hash的key 项的key 项的值。(项的key和项的值能够多对)         */        Map<String,String> map = new HashMap<>();        map.put("id","1");        map.put("name","dongdong");        map.put("age","3");        jedis.hmset("myhash",map);    }}

3、hget

hget:获取值。格局是:hget hash的key 项的key
操作如下:

java示例代码:

import redis.clients.jedis.Jedis;/** * redis中对于hash类型的: hget 操作示例 * hget:获取值。格局是:hget hash的key 项的key */public class Hash_hget_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        /**         * 示例1: hget hash的key 项的key         */        String id = jedis.hget("myhash", "id");        String name = jedis.hget("myhash", "name");        String age = jedis.hget("myhash", "age");        System.out.println(String.format("id = %s, name = %s, age = %s",id,name,age));    }}

4、hmget

hmget:同时获取多对值。格局是:hmget hash的key 项的key。(项的key能够有多个)

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;import java.util.List;/** * redis中对于hash类型的: hmget 操作示例 * hmget:同时获取多对值。格局是:hmget hash的key 项的key。(项的key能够有多个) */public class Hash_hmget_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        /**         * 示例1: hmget hash的key 项的key。(项的key能够有多个)         */        List<String> hmget = jedis.hmget("myhash", "id", "name", "age");        System.out.println("hmget = " + hmget);    }}

5、hgetall

hgetall:获取该key下所有的值。格局是:hgetall hash的key

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;import java.util.Map;/** * redis中对于hash类型的: hgetall 操作示例 * hgetall:获取该key下所有的值。格局是:hgetall hash的key */public class Hash_hgetall_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        /**         * 示例1: hgetall hash的key         */        Map<String, String> myhash = jedis.hgetAll("myhash");        System.out.println("myhash = " + myhash);    }}

6、hdel

hdel:删除某个项。格局是:hdel hash的key 项的key

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;import java.util.Map;/** * redis中对于hash类型的: hdel 操作示例 * hdel:删除某个项。格局是:hdel hash的key 项的key */public class Hash_hdel_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        Map<String, String> myhash = jedis.hgetAll("myhash");        System.out.println("myhash = " + myhash);        /**         * 示例1: hdel hash的key 项的key         */        Long hdel = jedis.hdel("myhash", "age");        System.out.println("hdel = " + hdel);        Map<String, String> myhash1 = jedis.hgetAll("myhash");        System.out.println("myhash1 = " + myhash1);    }}

7、hlen

hlen:获取key外面的键值对数量。格局是:hlen hash的key
操作如下:

java示例代码

import redis.clients.jedis.Jedis;import java.util.Map;/** * redis中对于hash类型的: hlen 操作示例 * hlen:获取key外面的键值对数量。格局是:hlen hash的key */public class Hash_hlen_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        Map<String, String> myhash = jedis.hgetAll("myhash");        System.out.println("myhash = " + myhash);        /**         * 示例1: hlen hash的key         */        Long hlen = jedis.hlen("myhash");        System.out.println("hlen = " + hlen);    }}

8、hexists

hexists:判断键值是否存在。格局是:hexists hash的key 项的key

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;import java.util.Map;/** * redis中对于hash类型的: hexists 操作示例 * hexists:判断键值是否存在。格局是:hexists hash的key 项的key */public class Hash_hexists_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        Map<String, String> myhash = jedis.hgetAll("myhash");        System.out.println("myhash = " + myhash);        /**         * 示例1: hexists hash的key 项的key         */        Boolean hexists = jedis.hexists("myhash", "id");        System.out.println("hexists = " + hexists);    }}

9、hkeys

hkeys:获取所有的item的key,格局是:hkeys hash的key

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;import java.util.Map;import java.util.Set;/** * redis中对于hash类型的: hexists 操作示例 * hkeys:获取所有的item的key,格局是:hkeys hash的key */public class Hash_hkeys_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        Map<String, String> myhash = jedis.hgetAll("myhash");        System.out.println("myhash = " + myhash);        /**         * 示例1: hkeys hash的key         */        Set<String> hkeys = jedis.hkeys("myhash");        System.out.println("hkeys = " + hkeys);    }}

10、hvals

hvals:获取所有的item的值,格局是:hvals hash的key

操作如下:

java示例代码:

import redis.clients.jedis.Jedis;import java.util.List;import java.util.Map;/** * redis中对于hash类型的: hexists 操作示例 * hvals:获取所有的item的值,格局是:hvals hash的key */public class Hash_hvals_operation {    public static void main(String[] args) {        Jedis jedis = new Jedis("127.0.0.1",6379);        Map<String, String> myhash = jedis.hgetAll("myhash");        System.out.println("myhash = " + myhash);        /**         * 示例1: hvals hash的key         */        List<String> hvals = jedis.hvals("myhash");        System.out.println("hvals = " + hvals);    }}

相干文章:
Redis 哈希(Hash)相干命令
Java中Redis对Hash类型的操作命令