脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。