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 * */@Autowiredprivate RedisTemplate<String, String> redisTemplate;/******单个的方式写入redis*/@Testpublic 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*/@Testpublic 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 中。**/@Testpublic void MapRedis2() {redisTemplate.opsForHash().putIfAbsent("map2", "k5", "value5");}/******直接根据redis 的key 把map给删除了*/@Testpublic void MapRedis3() {redisTemplate.delete("map1");}/******根据redis的key 和hash 的key 删除当个 value*/@Testpublic void MapRedis4() {redisTemplate.opsForHash().delete("map2", "k5");}/******根据redis 的key 判断hash是否存在,有返回true, 不存在返回false*/@Testpublic void MapRedis5() {redisTemplate.hasKey("map2");System.err.println(redisTemplate.hasKey("map2"));}/******根据redis的key和map的key 判断 hash的key是否存在, 存在返回true,不存在返回 false*/@Testpublic 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设置过期时间*/@Testpublic 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 天}/******获取过期时间,根据你默认存储进去的数据类型*/@Testpublic void MapRedis8() {redisTemplate.getExpire("map3");System.err.println(redisTemplate.getExpire("map3"));}/******获取过期时间,自定义获取的时间类型*/@Testpublic void MapRedis9() {redisTemplate.getExpire("map3", TimeUnit.SECONDS);System.err.println(redisTemplate.getExpire("map3", TimeUnit.MINUTES));}/******根据 redis 的key ,和 hash 的key 获取 hash里面的value*/@Testpublic 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*/@Testpublic 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表的所有键值对*/@Testpublic void MapRedis12() {Map<Object, Object> entries = redisTemplate.opsForHash().entries("map3");System.out.println(entries);}}

设置hash key的过期时间(设置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

redisTemplate Hash 使用方法相关推荐

  1. ruby hash方法_Ruby中带有示例的Hash.invert方法

    ruby hash方法 Hash.invert方法 (Hash.invert Method) In this article, we will study about Hash.invert Meth ...

  2. ruby hash方法_Ruby中带有示例的Hash.select方法

    ruby hash方法 哈希选择方法 (Hash.select Method) In this article, we will study about Hash.select Method. The ...

  3. as_hash ruby_Ruby中带有示例的Hash.delete_if方法

    as_hash ruby Hash.delete_if方法 (Hash.delete_if Method) In this article, we will study about Hash.dele ...

  4. ruby hash方法_Ruby中带有示例的Hash.length方法

    ruby hash方法 哈希长度方法 (Hash.length Method) In this article, we will study about Hash.length Method. The ...

  5. ruby hash方法_Ruby中带有示例的Hash.flatten方法

    ruby hash方法 哈希平化方法 (Hash.flatten Method) In this article, we will study about Hash.flatten Method. T ...

  6. as_hash ruby_Ruby中带有示例的Hash.each_pair方法

    as_hash ruby Hash.each_pair方法 (Hash.each_pair Method) In this article, we will study about Hash.each ...

  7. ruby hash方法_Ruby中带有示例的Hash.keys方法

    ruby hash方法 哈希键方法 (Hash.keys Method) In this article, we will study about Hash.keys Method. The work ...

  8. ruby hash方法_Ruby中带有示例的Hash.rehash方法

    ruby hash方法 Hash.rehash方法 (Hash.rehash Method) In this article, we will study about Hash.rehash Meth ...

  9. ruby hash方法_Ruby中带有示例的Hash.values方法

    ruby hash方法 哈希值方法 (Hash.values Method) In this article, we will study about Hash.values Method. The ...

最新文章

  1. apollo local 模式_Java客户端使用指南 - 五、本地开发模式 - 《携程 Apollo v1.4 开发指南》 - 书栈网 · BookStack...
  2. Android如何实现TCP和UDP传输
  3. shell命令tree
  4. C站最全Python库总结丨标准库+高级库
  5. fedora 27 mysql_无法在Fedora27上的Python2 virtualenv中使用mysqldb
  6. jmeter ---实战(详解)
  7. BP神经网络算法推导过程
  8. FFmpeg 任意格式转mp4格式
  9. XCTF练习题---MISC---simple_transfer
  10. 羊哥推荐的Java后端开发书籍
  11. 地图刷新 android,android – 如何刷新谷歌地图.
  12. 创业要素:如何推广自己的产品
  13. 性能测试工具—LoadRunner
  14. 图扑数字孪生军演,构建跨域作战体系
  15. 国家自然基金的latex模版
  16. 19 个接私活平台,有技术就有钱
  17. Android 透明状态栏
  18. android 错误中英互译,Android 中英文切换及遇到的问题
  19. Chrome 再次优化内存占用,新增内存释放开关
  20. distinct (去重)

热门文章

  1. python records 库使用方法
  2. java计算机毕业设计雷士灯具管理系统源代码+数据库+系统+lw文档
  3. Linux算时差方法
  4. 解决fatal: unable to access ‘https://github.com/xxx/xxx.git/‘: Failed to connect to github.com port 4
  5. 【转】C# Stream篇(二)TextReader 和StreamReader
  6. php怎么遍历json字符串数组,如何使用PHP遍历JSON数组
  7. 全国青少年信息学(计算机)奥林匹克分区联赛试题解析(中学),全国青少年信息学(计算机)奥林匹克分区联赛复赛模拟试题一汇总...
  8. 查询服务器中所有ddl文件,给定一个COM DLL,提取所有类的CLSID和相应的接口名称...
  9. 【奈茶君】ESP32S3 IDF RMT驱动WS2812
  10. echarts 折线图平滑曲线