zoukankan      html  css  js  c++  java
  • springboot 使用 redis

    springboot 自己是实现了一套 redis 缓存框架, 地址: https://www.cnblogs.com/huanggy/p/9473822.html, 通过配置即可轻松愉快地实现

    某些特殊场合还是需要我们自己写入 redis, 首先需要在 springboot 项目整合 redis, 整合方法: https://www.cnblogs.com/huanggy/p/9473822.html 

    1, 注入 StringRedisTemplate

    @Autowired
    private StringRedisTemplate redis;

    2, 通用操作

    // 检查 key 是否存在, 返回布尔值
    redis.hasKey("test");
    // 通过 key 删除
    redis.delete("test");
    // 获取过期时间
    redis.getExpire("test")
    // 获取过期时间并换算成指定单位
    redis.getExpire("test",TimeUnit.SECONDS)
    // 设置过期时间
    redis.expire("test",1000 , TimeUnit.SECONDS);

    3, Value 操作

    // 设置值
    redis.opsForValue().set("userName","Marry");
    // 设置值同时设置过期时间, 3600 秒
    redis.opsForValue().set("userAge", 3600, TimeUnit.SECONDS);
    // 获取值
    redis.opsForValue().get("userName");
    // 自减 1
    redis.boundValueOps("age").increment(-1)
    // 自加 1
    redis.boundValueOps("age").increment(-1)

    4, List 操作

    // 添加(从右添加, 可以理解为从尾部添加)
    redis.opsForList().rightPush("myList","1");
    redis.opsForList().rightPush("myList","2");
    redis.opsForList().rightPush("myList","3");
    // 添加(从左添加, 可以理解为从头部添加)
    redis.opsForList().leftPush("myList","0");
    redis.opsForList().leftPush("myList","-1");
    // 获取 list 所有元素(0 表示第一个, -1 表示所有)
    redis.opsForList().range("myList",0,-1)
    // 获取 list 前5个元素(0,5 前闭后开)
    redis.opsForList().range("myList",0,5)
    // 添加一个 list 
    List<String> strList = new ArrayList<>();
    strList.add("4);
    strList.add("5);
    redis.opsForList().rightPushAll("MyList", strList);
    // 删除最先进入 myList 的值为 "1"的元素(因为List 可以重复, 一个值可能会出现多次)
    redis.opsForList().remove("myList",1, "1");
    // 删除所有值是 "1" 的元素
    redis.opsForList().remove("myList",0, "1");

    5, Hash 操作

    // 单独添加属性 姓名(后面的会覆盖前面的)
    redis.opsForHash().put("user:10001", "userName", "Marry");
    // 单独添加属性 年龄
    redis.opsForHash().put("user:10001", "userAge", 20);
    // 添加整个对象
    Map<String, String> map = new HashMap<>();
    map.put("userName", "Rose");
    map.put("userAge", 20);
    redis.opsForHash().putAll("user:10002", map);
    // 获取 map 对象所有键值对
    Map<Object, Object> map = redis.opsForHash().entries("user:10001");
    // 获取 map 对象的某一个 key 的值
    redis.opsForHash().get("userName:10001", "userName");
    // 获取所有 key
    Set<Object> set = redis.opsForHash().keys("user:10001");
    // 获取所有 value
    List<Object> list = redis.opsForHash().values("user:10001");
    // 删除 map 对象的某一个 key-value
    redis.opsForHash().get("userName:10002", "userAge");
  • 相关阅读:
    Why "权限不够“?
    ASP程序快速生成Excel文件
    百家争鸣之-破冰(2005年年度总结)
    PostgreSQL最常见问题
    Delphi使用server组件控制excel的一点经验
    打造完美linux系统:常用软件安装
    QA杂想(2006年2月16日)
    java jdk / api
    Linux + Database
    eclipse dorado plugin
  • 原文地址:https://www.cnblogs.com/huanggy/p/9773394.html
Copyright © 2011-2022 走看看