根据key-item获取值
/**
* hGet命令 hashGet命令
*
* @param key 键 不能为null
* @param item 项 不能为null
* @return 值
*/
public Object hGet(String key, String item) {
return redisTemplate.opsForHash().get(key, item);
}
获取key下的所有item-value
/**
* hGetAll 命令 获取hashKey对应的所有键值
*
* @param key 键
* @return 对应的多个键值
*/
public Map<Object, Object> hGetAll(String key) {
return redisTemplate.opsForHash().entries(key);
}
获取key下指定items的value集合
/**
* hmGet命令 获取key下指定的items的value集合
*
* @param key 键
* @param items 对应的多个item
* @return List 对应的多个value
*/
public List<Object> hmGet(String key, String... items) {
return redisTemplate.opsForHash().multiGet(key, (Collection<Object>) CollectionUtils.arrayToList(items));
}
模糊查询
/**
* hash模糊查询
*
* @param key 键
* @param pattern 模糊查询的字符串
*/
public Cursor<Map.Entry<Object, Object>> hScan(String key, String pattern) {
return redisTemplate.opsForHash().scan(key, ScanOptions.scanOptions().match(pattern).build());
}
向一张hash表中存入数据,不存在则创建
/**
* 向一张hash表中放入数据,如果不存在将创建
*
* @param key 键
* @param item 项
* @param value 值
* @return true 成功 false失败
*/
public boolean hSet(String key, String item, Object value) {
try {
redisTemplate.opsForHash().put(key, item, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
向一张hash表中存入数据并设置过期时间,如果存在就创建
/**
* hSetIfSent命令 向一张hash表中放入数据并设置过期时间,如果存在就不创建
*
* @param key 键
* @param item 项
* @param value 值
* @param time 过期时间
* @return true 成功 false失败
*/
public boolean hSetIfSent(String key, String item, Object value, Long time) {
try {
redisTemplate.opsForHash().putIfAbsent(key, item, value);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
向一张hash表中存入多个键值对
/**
* hmSet命令,key中创建多个键值对
*
* @param key 键
* @param map 对应多个键值
* @return true 成功 false 失败
*/
public boolean hmSet(String key, Map<String, Object> map) {
try {
redisTemplate.opsForHash().putAll(key, map);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
存入一条数据并设置过期时间
/**
* hSet命令 并设置失效时间
*
* @param key 键
* @param item 项
* @param value 值
* @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
* @return true 成功 false失败
*/
public boolean hSet(String key, String item, Object value, long time) {
try {
redisTemplate.opsForHash().put(key, item, value);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
存入多条数据并设置过期时间
/**
* hmSet命令 并设置失效时间
*
* @param key 键
* @param map 对应多个键值
* @param time 时间(秒)
* @return true成功 false失败
*/
public boolean hmSet(String key, Map<String, Object> map, long time) {
try {
redisTemplate.opsForHash().putAll(key, map);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
删除hash表中的值
/**
* 删除hash表中的值
*
* @param key 键 不能为null
* @param item 项 可以使多个 不能为null
*/
public void hDel(String key, Object... item) {
redisTemplate.opsForHash().delete(key, item);
}
判断是否存在该项的值
/**
* hExists 判断hash表中是否有该项的值
*
* @param key 键 不能为null
* @param item 项 不能为null
* @return true 存在 false不存在
*/
public boolean hExistsKey(String key, String item) {
return redisTemplate.opsForHash().hasKey(key, item);
}
hash自增
/**
* hash递增 如果不存在,就会创建一个 并把新增后的值返回
*
* @param key 键
* @param item 项
* @param by 要增加几(大于0)
* @return 递增后的值
*/
public double hIncr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, by);
}
hash递增,并设置失效时间
public double hIncr(String key, String item, double by, Long time) {
Double increment = redisTemplate.opsForHash().increment(key, item, by);
expire(key, time);
return increment;
}
hash递减
/**
* hash递减
*
* @param key 键
* @param item 项
* @param by 要减少记(小于0)
* @return 285
*/
public double hDecr(String key, String item, double by) {
return redisTemplate.opsForHash().increment(key, item, -by);
}
获取key下所有item的集合
/**
* hKeys命令 获取key下所有item集合
*
* @param key 键
* @return 获取到的集合
*/
public Set<Object> hKeys(String key) {
return redisTemplate.opsForHash().keys(key);
}
获取key下所有items的values的集合
/**
* hValue命令 获取key下所有item的values集合
*
* @param key 键
* @return 获取到的values集合
*/
public List<Object> hValue(String key) {
return redisTemplate.opsForHash().values(key);
}
获取key下item的数量
/**
* hLen命令 获取key下item的数量
*
* @param key 键
* @return 获取到的数量
*/
public Long hLen(String key) {
return redisTemplate.opsForHash().size(key);
}
获取key下某个item的value的粗昂度
/**
* 获取key下某个item对应的value的长度
*
* @param key 键
* @param item item
* @return length value的长度
*/
public long hLengthOfValue(String key, Object item) {
return redisTemplate.opsForHash().lengthOfValue(key, item);
}