1. set(String key, Object value)
	/**
     * 普通缓存放入
     *
     * @param key   键
     * @param value 值
     * @return true成功 false 失败
     */
    public boolean set(String key, Object value) {
        try {
            redisTemplate.opsForValue().set(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
  1. set(String key, Object value, long time)
	/**
     * 普通缓存放入并设置时间
     *
     * @param key   键
     * @param value 值
     * @param time  时间(秒) 如果 time 小于等于0将设置无限期
     * @return true 成功 false 失败
     */
    public boolean set(String key, Object value, long time) {
        try {
            if (time > 0) {
                redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
            } else {
                set(key, value);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
  1. setIfAbsent(String key, Object value)
	/**
     * 如果该 key 已经存在,则不改变其值,不存在则将该 key 放入缓存
     *
     * @param key   键
     * @param value 值
     * @return 如果该 key 存在就返回 false,如果该 key不存在就返回 ture
     */
    public boolean setIfAbsent(String key, Object value) {
        return redisTemplate.opsForValue().setIfAbsent(key, value);
    }
  1. setIfAbsentExpire(String key, Object value, long expire)
	/**
     * 如果该 key 已经存在,则不改变其值,不存在则将该 key 放入缓存并设置过期时间
     *
     * @param key    键
     * @param value  值
     * @param expire 过期时间
     * @return 如果该 key 存在就返回 false,如果该 key不存在就返回 ture
     */
    public boolean setIfAbsentExpire(String key, Object value, long expire) {
        return redisTemplate.opsForValue().setIfAbsent(key, value, expire, TimeUnit.SECONDS);
    }
  1. get(String key)
	/**
     * 普通缓存获取
     *
     * @param key 键
     * @return 值
     */
    public Object get(String key) {
        return key == null ? null : redisTemplate.opsForValue().get(key);
    }
  1. hasKey(String key)
 	/**
     * 判断 key 是否存在
     *
     * @param key 键
     * @return true 存在 false 不存在
     */
    public boolean hasKey(String key) {
        try {
            return redisTemplate.hasKey(key);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
  1. expire(String key, long time)
	/**
     * 设置缓存失效时间
     *
     * @param key  键
     * @param time 时间(秒)
     * @return 是否设置成功, 如果该 key 不存在,不会自动将该 key 放入缓存,但仍然返回 true
     */
    public boolean expire(String key, long time) {
        try {
            if (time > 0) {
                redisTemplate.expire(key, time, TimeUnit.SECONDS);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
  1. getExpire(String key)
 	/**
     * 根据 key 获取过期时间
     *
     * @param key 键 不能为null
     * @return 时间(秒) 返回-1为永久有效,-2表示不存在该 key
     */
    public long getExpire(String key) {
        return redisTemplate.getExpire(key, TimeUnit.SECONDS);
    }
  1. delete(String… key)
	/**
     * 删除 key
     *
     * @param key 键
     * @return 被删除的 key 的数量,不包括本来就不存在的 key
     */
    public Long delete(String... key) {
        if (key == null || key.length < 1) {
            return 0L;
        }
        return redisTemplate.delete(Arrays.asList(key));
    }
  1. incr(String key, long delta)
	 /**
     * 递增
     *
     * @param key   键
     * @param delta 要增加几
     * @return 增加后的 key 的值
     */
    public long incr(String key, long delta) {
        if (delta < 0) {
            throw new RuntimeException("递增因子必须大于0");
        }
        return redisTemplate.opsForValue().increment(key, delta);
    }
  1. decr(String key, long delta)
	/**
     * 递减
     *
     * @param key   键
     * @param delta 要减少几
     * @return 减少后的 key 的值
     */
    public long decr(String key, long delta) {
        if (delta < 0) {
            throw new RuntimeException("递减因子必须大于0");
        }
        return redisTemplate.opsForValue().increment(key, -delta);
    }
  1. Set keys
	/**
     * 获取所有的 key
     *
     * @return 所有的 key
     */
    public Set<String> keys() {
        return redisTemplate.keys("*");
    }
  1. type(String key)
 	/**
     * 获取 Key 的类型
     *
     * @param key 键
     * @return Key 的类型
     */
    public String type(String key) {
        DataType dataType = redisTemplate.type(key);
        assert dataType != null;
        return dataType.code();
    }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐