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不存在時,才設(shè)值
        //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對應(yīng)的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方法,根據(jù)key和hashkey找出對應(yīng)的值
        System.out.println(redisTemplate.opsForHash().get("k1", "name"));
    }
    
    @Test
    public void demo6() {
        //multiGet方法,根據(jù)key和多個hashkey找出對應(yīng)的多個值
        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對應(yīng)的值進行增加操作
        //增加長整形(無法對浮點數(shù)據(jù)使用本方法)
        System.out.println(redisTemplate.opsForHash().increment("k1", "age", 1));
        //增加浮點型(可以對整形數(shù)據(jù)使用本方法)
        System.out.println(redisTemplate.opsForHash().increment("k1", "age", 1.0));
    }
    
    @Test
    public void demo8() {
        //keys方法,獲取key對應(yīng)的hash表的所有key
        Set<Object> keys = redisTemplate.opsForHash().keys("k1");
        System.out.println(keys);
        
        //values方法,獲取key對應(yīng)的hash表的所有value
        List<Object> values = redisTemplate.opsForHash().values("k1");
        System.out.println(values);
    }
    
    @Test
    public void demo9() {
        //keys方法,獲取key對應(yīng)的hash表的大小
        long size = redisTemplate.opsForHash().size("k1");
        System.out.println(size);
    }
    
    @Test
    public void demo10() {
        //keys方法,獲取key對應(yīng)的hash表的所有鍵值對
        Map<Object, Object> entries = redisTemplate.opsForHash().entries("k1");
        System.out.println(entries);
    }
    
    
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • 第一部分 Python基礎(chǔ)篇(80題) 1、為什么學(xué)習(xí)Python? Python相對于其他編程語言有很多優(yōu)點: ...
    清清子衿木子水心閱讀 1,828評論 0 1
  • 2016.8.28 晴 晴空萬里有白云點綴其間,每每抬頭看到湛藍的天空中的那一朵白云,腦海中情不自禁的幻想有一個人...
    三人生閱讀 464評論 0 0

友情鏈接更多精彩內(nèi)容