RedisTemplate 使用

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了RedisTemplate 使用脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
/** * 放入不过期不序列化缓存 * * @param key * @param value */public void putRaw(String key, String value) {    stringRedisTemplate.opsForValue().set(key, value);}/** * 放入不过期不序列化缓存 * * @param key * @param value * @param expireSec */public void putRaw(String key, String value, Integer expireSec) {    stringRedisTemplate.opsForValue().set(key, value, expireSec, TimeUnit.SECONDS);}/** * 直接获取不反序列化缓存 * * @param key * @return */public String getRaw(String key) {    return stringRedisTemplate.opsForValue().get(key);}/** * 放入对象/集合,进行序列化 * * @param key * @param obj */public void putObj(String key, Object obj) {    stringRedisTemplate.opsForValue().set(key, JSONObject.toJSONString(obj));}/** * 放入对象/集合,进行序列化,带过期时间 * * @param key * @param obj * @param expireSec */public void putObj(String key, Object obj, Integer expireSec) {    stringRedisTemplate.opsForValue().set(key, JSONObject.toJSONString(obj), expireSec, TimeUnit.SECONDS);}/** * 获取对象进行序列化 * * @param key * @param clazz * @param <T> * @return */public <T> T getObj(String key, Class<T> clazz) {    String json = stringRedisTemplate.opsForValue().get(key);    if (StringUtils.isEmpty(json)) {        return null;    }    return JSONObject.parseObject(json, clazz);}/** * 获取对象列表 * * @param key * @param clazz * @param <T> * @return */public <T> List<T> getObjList(String key, Class<T> clazz) {    String json = stringRedisTemplate.opsForValue().get(key);    if (StringUtils.isEmpty(json)) {        return null;    }    return JSONObject.parseArray(json, clazz);}/** * 将值放入Hash里 * * @param hashName * @param key * @param value */public void putHashRaw(String hashName, String key, String value) {    stringRedisTemplate.opsForHash().put(hashName, key, value);}/** * 设置Hash对象,进行序列化 * * @param hashName * @param key * @param obj */public void putHashObj(String hashName, String key, Object obj) {    stringRedisTemplate.opsForHash().put(hashName, key, JSONObject.toJSONString(obj));}/** * 设置Hash对象,进行序列化 * * @param hashName * @param key * @param obj * @param expireSec */public void putHashObj(String hashName, String key, Object obj, Integer expireSec) {    boolean hasKey = stringRedisTemplate.hasKey(key);    stringRedisTemplate.opsForHash().put(hashName, key, JSONObject.toJSONString(obj));    if (!hasKey) {        stringRedisTemplate.expire(key, expireSec, TimeUnit.SECONDS);    }}/** * 增加Hash表中键的字面数值 * * @param hashName * @param key * @param delta * @return */public long incrementHashKey(String hashName, String key, long delta) {    return stringRedisTemplate.opsForHash().increment(hashName, key, delta);}/** * 减少Hash表中字面的数值 * * @param hashName * @param key * @param delta * @return */public long decrementHashKey(String hashName, String key, long delta) {    return stringRedisTemplate.opsForHash().increment(hashName, key, -delta);}/** * 获取Hash值,不进行序列化 * * @param hashName * @param key * @return */public String getHashRaw(String hashName, String key) {    String o = (String) stringRedisTemplate.opsForHash().get(hashName, key);    if (StringUtils.isEmpty(o)) {        return null;    }    return o;}/** * 获取Hash值,带反序列化 * * @param hashName * @param key * @param clazz * @param <T> * @return */public <T> T getHashObj(String hashName, String key, Class<T> clazz) {    String o = (String) stringRedisTemplate.opsForHash().get(hashName, key);    if (StringUtils.isEmpty(o)) {        return null;    }    return JSONObject.parseObject(o, clazz);}/** * 获取Hash值,以数组的形式反序列化 * * @param hashName * @param key * @param clazz * @param <T> * @return */public <T> List<T> getHashList(String hashName, String key, Class<T> clazz) {    String o = (String) stringRedisTemplate.opsForHash().get(hashName, key);    if (StringUtils.isEmpty(o)) {        return null;    }    return JSONObject.parseArray(o, clazz);}/** * 批量获取Hash表里面的值 * * @param hashName * @param keyCollection String类型键集合 Collection<String> * @param clazz * @param <T> * @return */public <T> List<T> getHashMultiAsList(String hashName, Collection keyCollection, Class<T> clazz) {    List<String> list = stringRedisTemplate.opsForHash().multiGet(hashName, keyCollection);    return list.stream().map(item -> JSONObject.parseObject(item, clazz)).collect(Collectors.toList());}/** * 删除Hash值 * * @param hashName * @param key */public void delHashKey(String hashName, String key) {    stringRedisTemplate.opsForHash().delete(hashName, key);}public void delHashKeyList(String hashName, List<String> keys) {    stringRedisTemplate.opsForHash().delete(hashName, keys.toArray());}public void putHashAll(String key, Map<String, String> map, Integer expireSec) {    stringRedisTemplate.opsForHash().putAll(key, map);    stringRedisTemplate.expire(key, expireSec, TimeUnit.SECONDS);}public Map<String,String> getHashAll(String key) {    if (!stringRedisTemplate.hasKey(key)) {        return null;    }    return (Map)stringRedisTemplate.opsForHash().entries(key);}/** * 向有序集合中添加元素 * * @param setName * @param source * @param value */public void putZSet(String setName, double source, String value) {    stringRedisTemplate.opsForZSet().add(setName, value, source);}public void putZSetMulti(String setName, Set<ZSetOperations.TypedTuple<String>> values) {    stringRedisTemplate.opsForZSet().add(setName, values);}/** * 从有序集合中移除数据 * * @param setName * @param value */public void delZSet(String setName, String value) {    stringRedisTemplate.opsForZSet().remove(setName, value);}/** * 从有序集合中分页获取数据 * * @param setName * @param pageNo * @param pageSize * @param isAsc * @return */public Page<String> getZSetPage(String setName, int pageNo, int pageSize, boolean isAsc) {    Long size = stringRedisTemplate.opsForZSet().size(setName);    List<String> list = new ArrayList<>();    if (size > 0) {        if (isAsc) {            list.addAll(stringRedisTemplate.opsForZSet().range(setName, (pageNo - 1) * pageSize, pageNo * pageSize - 1));        } else {            list.addAll(stringRedisTemplate.opsForZSet().reverseRange(setName, (pageNo - 1) * pageSize, pageNo * pageSize - 1));        }    }    return new Page<>(list, pageNo, pageSize, size);}/** * 设置Lru,最后进来的排最前面 * @param setName * @param value * @param max * @param exceed 可允许超出范围,清理缓存区。 */public void putZSetLru(String setName, String value, int max, int exceed) {    Long size = stringRedisTemplate.opsForZSet().size(setName);    if (size > max + exceed - 1) {        //超过了。淘汰了        stringRedisTemplate.opsForZSet().removeRange(setName, size - exceed, size);    }    stringRedisTemplate.opsForZSet().add(setName, value, -System.currentTimeMillis());}/** * 增加ZSet分数 * @param setName * @param value * @param delta */public Double incZSetSource(String setName, String value, double delta) {    return stringRedisTemplate.opsForZSet().incrementScore(setName, value, delta);}/** * 获取前N个 * @param setName * @param n * @return */public Set<String> getZSetLruTopN(String setName, int n) {    return stringRedisTemplate.opsForZSet().range(setName, 0 , n);}/** * 向一个set中添加数据 * @param key * @param member * @param expireSec */public void putSetRaw(String key, String member, Integer expireSec) {    stringRedisTemplate.opsForSet().add(key, member);    stringRedisTemplate.expire(key, expireSec, TimeUnit.SECONDS);}public void putSetRawAll(String key, String[] set, Integer expireSec) {    stringRedisTemplate.opsForSet().add(key, set);    stringRedisTemplate.expire(key, expireSec, TimeUnit.SECONDS);}public void removeSetRaw(String key, String member) {    stringRedisTemplate.opsForSet().remove(key, member);}public boolean isSetMember(String key, String member) {    return stringRedisTemplate.opsForSet().isMember(key, member);}/** * 删除键 / 桶 / hash 表等 * * @param key */public void del(String key) {    stringRedisTemplate.delete(key);}/** * 判断是否包含键 * * @param key * @return */public boolean hasKey(String key) {    return stringRedisTemplate.hasKey(key);}/** * 获取指定前缀的Key * * @param prefix * @return */public Set<String> getPrefixKeySet(String prefix) {    return stringRedisTemplate.keys(prefix + "*");}public void delPrefixKey(String prefix) {    Set<String> prefixKeySet = getPrefixKeySet(prefix);    for (String key : prefixKeySet) {        stringRedisTemplate.delete(key);    }}/** * 获取redis中键的过期时间 * 返回秒 * @param key * @return */public Long getKeyExpire(String key){    return stringRedisTemplate.getExpire(key);}

脚本宝典总结

以上是脚本宝典为你收集整理的RedisTemplate 使用全部内容,希望文章能够帮你解决RedisTemplate 使用所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: