StringRedisTemplate方法和Redis语法对应关系(Hash)

    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    @Test
    public void testHash() {
        stringRedisTemplate.delete("testHash");

        //hmset key field1 value1 field2 value2...
        //用于同时将多个 field-value (字段-值)对设置到哈希表中,此命令会覆盖哈希表中已存在的字段
        //如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作
        Map<String, String> map = new HashMap<>();
        map.put("hashChild1", LocalDateTime.now().toString());
        map.put("hashChild2", LocalDateTime.now().toString());
        stringRedisTemplate.opsForHash().putAll("testHash", map);
        System.out.println("\thmset key field1 value1 field2 value2...:void");

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hset ket field value
        //用于为哈希表中的字段赋值
        //如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作
        //如果字段已经存在于哈希表中,旧值将被覆盖
        stringRedisTemplate.opsForHash().put("testHash", "hashChild3", LocalDateTime.now().toString());
        System.out.println("\thset ket field value:void");

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hexists key field
        //用于查看哈希表的指定字段是否存在
        Boolean hexistsResult = stringRedisTemplate.opsForHash().hasKey("testHash", "hashChild1");
        System.out.println("\thexists key field:" + hexistsResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hgetall key
        //用于返回哈希表中,所有的字段和值
        Map<Object, Object> hgetallResult = stringRedisTemplate.opsForHash().entries("testHash");
        System.out.println("\thgetall key:" + hgetallResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hvals key
        //返回哈希表所有的值
        List<Object> hvalsResult = stringRedisTemplate.opsForHash().values("testHash");
        System.out.println("\thvals key:" + hvalsResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hkeys key
        //用于获取哈希表中的所有域(field
        Set<Object> hkeysResult = stringRedisTemplate.opsForHash().keys("testHash");
        System.out.println("\thkeys key:" + hkeysResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hmget key field1 field2...
        //用于返回哈希表中,一个或多个给定字段的值
        //如果指定的字段不存在于哈希表,那么返回一个 nil 值
        List<Object> list = Arrays.asList("hashChild1", "hashChild2");
        List<Object> hmgetResult = stringRedisTemplate.opsForHash().multiGet("testHash", list);
        System.out.println("\thmget key field1 field2...:" + hmgetResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hsetnx key field value
        //用于为哈希表中不存在的的字段赋值
        //如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作
        //如果字段已经存在于哈希表中,操作无效
        //如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令
        Boolean hsetnxResult = stringRedisTemplate.opsForHash().putIfAbsent("testHash", "hashChild4", LocalDateTime.now().toString());
        System.out.println("\thsetnx key field value:" + hsetnxResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hdel key field1 field2 ...
        //用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略
        Long hdelResult = stringRedisTemplate.opsForHash().delete("testHash", "hashChild1", "hashChild2");
        System.out.println("\thdel key field1 field2 ...:" + hdelResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

        //hget key field
        //用于返回哈希表中指定字段的值
        Object hgetResult = stringRedisTemplate.opsForHash().get("testHash", "hashChild3");
        System.out.println("\thget key field:" + hgetResult);

        System.out.println(stringRedisTemplate.opsForHash().entries("testHash"));

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值