Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。html
Redis 中每一个 hash 能够存储 232 - 1 键值对(40多亿)。java
简单示例:redis
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"
hset:设置值。格式是:hset hash的key 项的key 项的值spa
操做以下:code
java示例代码:orm
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"); } }
hmset:同时设置多对值。格式是:hmset hash的key 项的key 项的值。(项的key和项的值能够多对)htm
操做以下:对象
java示例代码:blog
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); } }
hget:获取值。格式是:hget hash的key 项的key
操做以下:ip
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)); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }