Redis简单入门三——对Hash操作
来源:互联网 发布:南安普顿的人工智能 编辑:程序博客网 时间:2024/05/22 05:09
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
一样的套路,先介绍部分命令,再通过代码来实现。
1、HMSET key field1 value1 [field2 value2 ]:同时将多个 field-value (域-值)对设置到哈希表 key 中。
2、HGETALL key:获取在哈希表中指定 key 的所有字段和值。
3、HMGET key field1 [field2]:获取所有给定字段的值。
4、HKEYS key:获取所有哈希表中的字段。
5、HVALS key:获取哈希表中所有值。
6、HLEN key:获取哈希表中字段的数量。
7、HEXISTS key field:查看哈希表 key 中,指定的字段是否存在。
8、HGET key field:获取存储在哈希表中指定字段的值。
9、HINCRBY key field increment:为哈希表 key 中的指定字段的整数值加上增量 increment 。
10、HSET key field value:将哈希表 key 中的字段 field 的值设为 value 。
11、HSCAN key cursor [MATCH pattern] [COUNT count]:迭代哈希表中的键值对。
12、HDEL key field2 [field2]:删除一个或多个哈希表字段。
以下是代码:
public class RedisTest{
private static Jedis instanceJedis(){
return JedisUtil.getInstance();
}
public static void main(String[] args) {
Jedis jedis = instanceJedis();
Map<String, String> hash = new HashMap<String, String>();
hash.put("name", "lgx");
hash.put("complany", "GRG");
hash.put("age", "20");
jedis.hmset("hashKey", hash);
System.out.println("获取在哈希表中指定 key 的所有字段和值:"+jedis.hgetAll("hashKey"));
System.out.println("获取所有给定字段的值:"+jedis.hmget("hashKey", "name", "age"));
System.out.println("获取所有哈希表中的字段:"+jedis.hkeys("hashKey"));
System.out.println("获取哈希表中所有值:"+jedis.hvals("hashKey"));
System.out.println("获取哈希表中字段的数量:"+jedis.hlen("hashKey"));
System.out.println("查看哈希表 key 中,指定的字段是否存在:"+jedis.hexists("hashKey", "name"));
System.out.println("获取存储在哈希表中指定字段的值:"+jedis.hget("hashKey", "name"));
jedis.hincrBy("hashKey", "age", 1);
System.out.println("获取存储在哈希表中指定[age]的值:"+jedis.hget("hashKey", "age"));
jedis.hset("hashKey", "name", "lgxing");
System.out.println("获取存储在哈希表中指定[name]的值:"+jedis.hget("hashKey", "name"));
System.out.println("hscan的用法");
ScanParams scanParams = new ScanParams();
// 完全匹配key值,不支持模糊匹配
scanParams.match("*");//可指定Hash中的某个字段
ScanResult<Map.Entry<String, String>> hscanResult = jedis.hscan("hashKey", "0", scanParams);
int cursor = hscanResult.getCursor(); // 返回0 说明遍历完成
System.out.println("游标" + cursor);
List<Map.Entry<String, String>> scanResult = hscanResult.getResult();
for (int m = 0; m < scanResult.size(); m++) {
Map.Entry<String, String> mapentry = scanResult.get(m);
System.out.println("key: " + mapentry.getKey() + " value: " + mapentry.getValue());
}
//删除一个或多个哈希表字段。del命令可以删除任何数据类型的key
jedis.hdel("hashKey", "complany");
jedis.del("hashKey");
System.out.println("删除hashKey之后再获取: "+jedis.hgetAll("hashKey"));
}
}
输出入下图:
- Redis简单入门三——对Hash操作
- Redis简单入门二——对String类型操作
- Redis简单入门四——对List操作
- Redis 入门之 redis 对hash的操作
- Redis简单入门五——对Set集合的操作
- redis-hash类型简单操作
- 【Redis】深入浅出Redis(三)——在项目中使用Jedis对Redis操作
- redis for hash操作简单总结
- golang-redis之hash类型简单操作
- redis入门——散列类型(hash)
- RedisTemplate访问Redis数据结构(三)——Hash
- Redis命令学习—Hash(哈希表)操作
- Redis缓存命令整理—Hash(哈希表)操作命令
- NoSQL之Redis对数据类型hash的操作
- redis入门-hash常用命令
- Redis[三] @Hash 哈希
- Redis Hash操作
- ServiceStack.Redis操作Hash
- Android 从零开始实现支付宝支付
- ABAP 调试 报错 Field symbol has not yet been assigned
- CExpandHeader
- block extends include三者的差别跟用法
- Mat 颜色空间转换
- Redis简单入门三——对Hash操作
- spring boot配置freemarker--autoIncludes
- Solr 6.2.1 集群部署
- 解决iframe中fixed失效问题
- Swift 3.0 打开手机手电筒
- Log4j自定义Appender介绍
- nginx自动检测后台服务器健康状态
- Unable to execute dex: Multiple dex files define Lcom/baidu/location/BDErrorReport
- TKIP详解