RedisTemplate中hash类型的使用

简述

  • 上一文中简述了使用StringRedisTemplate操作redis中的list类型,今天来记录一下操作hash类型的主要方法

代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class HashDemo {

    @Autowired 
    private StringRedisTemplate redisTemplate;
    
    @Test
    public void demo1() {
        //put方法
        redisTemplate.opsForHash().put("k1", "name", "baipengfei");
        redisTemplate.opsForHash().put("k1", "age", "22");
        redisTemplate.opsForHash().put("k1", "height", "176");
        
        //hashKey不存在时,才设值
        //redisTemplate.opsForHash().putIfAbsent(key, hashKey, value)
    }
    
    @Test
    public void demo2() {
        //putAll方法
        Map<String, String> data = new HashMap<>();
        data.put("name", "jack ma");
        data.put("company", "alibaba");
        data.put("age", "500");
        redisTemplate.opsForHash().putAll("k2", data);
    }
    
    @Test
    public void demo3() {
        //delete方法,删除key对应的hash的hashkey及其value
        redisTemplate.opsForHash().delete("k2", "name");
    }
    
    @Test
    public void demo4() {
        //hasKey方法,确定hashkey是否存在
        System.out.println(redisTemplate.opsForHash().hasKey("k2", "name"));
    }
    
    @Test
    public void demo5() {
        //get方法,根据key和hashkey找出对应的值
        System.out.println(redisTemplate.opsForHash().get("k1", "name"));
    }
    
    @Test
    public void demo6() {
        //multiGet方法,根据key和多个hashkey找出对应的多个值
        Collection<Object> keys = new ArrayList<>();
        keys.add("name");
        keys.add("age");
        System.out.println(redisTemplate.opsForHash().multiGet("k1", keys));
    }
    
    @Test
    public void demo7() {
        //increment方法,对key和hashkey对应的值进行增加操作
        //增加长整形(无法对浮点数据使用本方法)
        System.out.println(redisTemplate.opsForHash().increment("k1", "age", 1));
        //增加浮点型(可以对整形数据使用本方法)
        System.out.println(redisTemplate.opsForHash().increment("k1", "age", 1.0));
    }
    
    @Test
    public void demo8() {
        //keys方法,获取key对应的hash表的所有key
        Set<Object> keys = redisTemplate.opsForHash().keys("k1");
        System.out.println(keys);
        
        //values方法,获取key对应的hash表的所有value
        List<Object> values = redisTemplate.opsForHash().values("k1");
        System.out.println(values);
    }
    
    @Test
    public void demo9() {
        //keys方法,获取key对应的hash表的大小
        long size = redisTemplate.opsForHash().size("k1");
        System.out.println(size);
    }
    
    @Test
    public void demo10() {
        //keys方法,获取key对应的hash表的所有键值对
        Map<Object, Object> entries = redisTemplate.opsForHash().entries("k1");
        System.out.println(entries);
    }
    
    
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,223评论 25 709
  • 第一部分 Python基础篇(80题) 1、为什么学习Python? Python相对于其他编程语言有很多优点: ...
    清清子衿木子水心阅读 5,699评论 0 1
  • 2016.8.28 晴 晴空万里有白云点缀其间,每每抬头看到湛蓝的天空中的那一朵白云,脑海中情不自禁的幻想有一个人...
    三人生阅读 3,180评论 0 0

友情链接更多精彩内容