How to use redisTemplate Hash

How to use redisTemplate Hash

package com;
 
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.junit.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.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootRedisAppMap {
	
	/****
	 * 
	 * redisTemplate 操作 Map 
	 * 
	 */
	 @Autowired
	 private RedisTemplate<String, String> redisTemplate;
 
	 /****
	 *
	 *单个的方式写入redis
	 */
	 @Test
	 public void MapRedis0() {
		 redisTemplate.opsForHash().put("map1", "k1", "value1");
		 redisTemplate.opsForHash().put("map1", "k2", "value2");
		 redisTemplate.opsForHash().put("map1", "k3", "value3");
		 redisTemplate.opsForHash().put("map1", "k4", "value4");
			
	 }
	 /****
	 *
	 *声明的方式写入redis
	 */
	 @Test
	 public void MapRedis() {
		 Map map=new HashMap<>();
		 map.put("k1", "value1");
		 map.put("k2", "value2");
		 map.put("k3", "value3");
		 map.put("k4", "value4");
		 redisTemplate.opsForHash().putAll("map2", map);
 
	
	 }
	 
	 /****
     *putIfAbsent() 方法会先判断指定的键(key)是否存在,不存在则将键/值对插入到 HashMap 中。
	 *
	 */
	 @Test
	 public void MapRedis2() {
		 redisTemplate.opsForHash().putIfAbsent("map2", "k5", "value5");
	 }
	 
	 
	 /****
	 *
	 *直接根据redis 的key 把map给删除了
	 */
	 @Test
	 public void MapRedis3() {
		 redisTemplate.delete("map1");
	
	 }
	 
	 /****
	 *
	 *根据redis的key 和hash 的key 删除当个 value
	 */
	 @Test
	 public void MapRedis4() {
		 redisTemplate.opsForHash().delete("map2", "k5");
	 }
	 
	
	 /****
	 *
	 *根据redis 的key 判断hash是否存在,有返回true, 不存在返回false
	 */
	 @Test
	 public void MapRedis5() {
		 redisTemplate.hasKey("map2");
		 System.err.println(redisTemplate.hasKey("map2"));
	 }
	 
	 
	 
	 /****
	 *
	 *根据redis的key和map的key 判断 hash的key是否存在, 存在返回true,不存在返回 false
	 */
	 @Test
	 public void MapRedis6() {
		 redisTemplate.opsForHash().hasKey("map2", "k4");
		 redisTemplate.opsForHash().hasKey("map2", "k5");
		 System.err.println(redisTemplate.opsForHash().hasKey("map2", "k4"));
		 System.err.println(redisTemplate.opsForHash().hasKey("map2", "k5"));
	 }
	 
	 
	 /****
	 *
	 *给hash设置过期时间
	 */
	 @Test
	 public void MapRedis7() {
		 Map map=new HashMap<>();
		 map.put("k1", "value1");
		 map.put("k2", "value2");
		 map.put("k3", "value3");
		 map.put("k4", "value4");
		 redisTemplate.opsForHash().putAll("map3", map);
		 redisTemplate.expire("map3", 1000, TimeUnit.SECONDS);
		 //NANOSECONDS 纳秒
		 //MICROSECONDS 微秒
		 //MILLISECONDS 毫秒
		 //SECONDS 秒
		 //MINUTES 分钟
		 //HOURS 小时
		 //DAYS 天
	 }
	 
	 /****
	 *
	 *获取过期时间,根据你默认存储进去的数据类型
	 */
	 @Test
	 public void MapRedis8() {
		 redisTemplate.getExpire("map3");
		 System.err.println(redisTemplate.getExpire("map3"));
		
	 }
	 
	 /****
	 *
	 *获取过期时间,自定义获取的时间类型
	 */
	 @Test
	 public void MapRedis9() {
		 redisTemplate.getExpire("map3", TimeUnit.SECONDS);
		 System.err.println(redisTemplate.getExpire("map3", TimeUnit.MINUTES));
		
	 }
	 
	 /****
	 *
	 *根据 redis 的key ,和 hash 的key 获取 hash里面的value
	 */
	 @Test
	 public void MapRedis10() {
		 redisTemplate.opsForHash().get("map3", "k1");
		 redisTemplate.opsForHash().get("map3", "k2");
		 redisTemplate.opsForHash().get("map3", "k3");
		 System.err.println( redisTemplate.opsForHash().get("map3", "k1"));
		 System.err.println( redisTemplate.opsForHash().get("map3", "k2"));
		 System.err.println( redisTemplate.opsForHash().get("map3", "k3"));
	 }
	 /****
	 *
	 * 以数据的形式获取hash的value
	 */
	 @Test
	 public void MapRedis11() {
		  Collection<Object> keys = new ArrayList<>();
	      keys.add("k1");
	      keys.add("k2");
	      keys.add("k3");
		 redisTemplate.opsForHash().multiGet("map3", keys);
		 System.err.println(redisTemplate.opsForHash().multiGet("map3", keys));
 
	 }
	 
	 /****
	 *
	 *根据redis的 key 获取key对应的hash表的所有键值对
	 */
	 @Test
	 public void MapRedis12() {
		 Map<Object, Object> entries = redisTemplate.opsForHash().entries("map3");
	     System.out.println(entries);
	 }
	 
	 
		
 
 
	
	
 
}

Set the expiration time of the hash key (set the expiration time of the key)

@Autowired
private RedisTemplate<String, Object> redisTemplate;
 
@Autowired
private StringRedisTemplate template;
 
/**
 * 判断key是否存在
 * @param key
 * @return
 */
public boolean exists(String key) {
	return template.hasKey(key);
}
 
/**
 * 判断key是否过期
 * @param key
 * @return
 */
public boolean isExpire(String key) {
	return expire(key) > 1?false:true;
}
 
 
/**
 * 从redis中获取key对应的过期时间;
 * 如果该值有过期时间,就返回相应的过期时间;
 * 如果该值没有设置过期时间,就返回-1;
 * 如果没有该值,就返回-2;
 * @param key
 * @return
 */
public long expire(String key) {
	return redisTemplate.opsForValue().getOperations().getExpire(key);
}
 
————————————————
版权声明:本文为CSDN博主「码农致富」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011781521/article/details/108084141

Guess you like

Origin blog.csdn.net/linsenaa/article/details/123750794