RedisTemplate操作Redis数据结构-Hash类型
生活随笔
收集整理的這篇文章主要介紹了
RedisTemplate操作Redis数据结构-Hash类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Redis中的hash結構如同java中的map,一個對象里有多個鍵值對,適合用來存儲對象。
SpringBoot中使用RedisTemplate執行Redis基本命令
在application.properties或application.yml文件中配置Redis
spring:
redis:
host: 127.0.0.1
port: 6379
編寫代碼
package com.heaven.redis;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.test.context.junit4.SpringRunner;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
class RedisApplicationTests {
@Autowired
RedisTemplate redisTemplate;
@Test
void testHash(){
//設置生成key value的序列化策略
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
String key = "hash";
Map<String,String> map = new HashMap<>();
map.put("f1","val1");
map.put("f2","val2");
//為hash結構設置多個鍵值對(hmset)
redisTemplate.opsForHash().putAll(key,map);
//獲取hash結構指定字段的value,單個key(hget)
Object f1 = redisTemplate.opsForHash().get(key, "f1");
log.info("f1========"+f1);
//為hash結構設置單個鍵值對(hset)
redisTemplate.opsForHash().put(key,"f3","val3");
Object f3 = redisTemplate.opsForHash().get(key, "f3");
log.info("f3========"+f3);
//判斷hash結構中是否包含某字段(hexists)
Boolean haskey = redisTemplate.opsForHash().hasKey(key, "f3");
log.info("haskey========"+haskey);
//獲取hash結構中所有的鍵值對(hgetall)
Map<String,String> entries = redisTemplate.opsForHash().entries(key);
for(Map.Entry<String,String> entry : entries.entrySet()){
log.info(entry.getKey()+"======"+entry.getValue());
}
//獲取所有hash結構中所有的key(hkeys)
Set<String> keys = redisTemplate.opsForHash().keys(key);
for(String key1 : keys){
log.info("key1=========="+keys);
}
//獲取hash結構中所有的value(hvals)
List<String> values = redisTemplate.opsForHash().values(key);
for(String value : values){
log.info("value======="+value);
}
//獲取hash結構中指定key的value,可以是多個key(hmget)
List<String> list = redisTemplate.opsForHash().multiGet(key, keys);
for(String value2 : list){
log.info("value2======="+value2);
}
//hash結構中若存在相應key才進行操作(hsetnx)
Boolean success = redisTemplate.opsForHash().putIfAbsent(key, "f3", "6");
log.info("succes======"+success);
//刪除hash結構中指定的key(hdel)
Long delete = redisTemplate.opsForHash().delete(key, "f1", "f2");
log.info("delete=========="+delete);
}
}
運行結果
總結
以上是生活随笔為你收集整理的RedisTemplate操作Redis数据结构-Hash类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Cloud SDK for Ja
- 下一篇: 一季度印度智能手机出货量同比下滑18%