hash的数据结构类似于Java里的类。key可以类似于类名
添加域
-
HSET key field value [field value …]
往key中添加一个field,并给field填充value。
返回值:返回fields的数量
HashMap<String, String> fields = new HashMap<>(); fields.put("id", "10001"); fields.put("name", "tom"); fields.put("age", "12"); Long fieldsNum = resource.hset(key, fields);
-
HSETNX key field value
field不存在时,才添加
返回值:返回1,表示新的field被添加
返回0,表示field已经存在
Long exist = resource.hsetnx(key, "id", "1001");
-
HMSET key field value [field value …]
批量设置field和value。功能和hset一样。适用于redis4.0版本之前
获取域和值
-
HGET key field
获取field对应的value。
返回值:field存在,返回value
field不存在,返回nil
String value = resource.hget(key, "id");
-
HGETALL key
返回所有field对应的value
返回值:key存在,返回field-value对
key不存在,返回空list
Map<String, String> fieldValueMap = resource.hgetAll(key);
-
HKEYS key
获取所有的field
返回值:key存在,返回所有的field
key不存在,返回空list
Set<String> fields = resource.hkeys(key);
-
HVALS key
获取所有values
返回值:key存在,返回所有的value
key不存在,返回空list
List<String> values = resource.hvals(key);
删除域
-
HDEL key field [field …]
移除指定的field。
返回值:返回被移除的field的数量。
key不存在,返回0
Long removedNum = resource.hdel(key, "id", "name");
域是否存在
-
HEXISTS key field
返回field是否存在
返回值:1,存在
0,不存在
Boolean exist = resource.hexists(key, "id");
域的数量
-
HLEN key
返回field的数量
返回值:返回filed的数量或者0
Long fieldsNumber = resource.hlen(key);