RedisTemplate.java
来源:互联网 发布:怎样加速手机网络 编辑:程序博客网 时间:2024/06/05 02:39
RedisTemplate.java
Redis客户端Java类
import java.io.Serializable;import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.Map;import java.util.Set;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.util.SerializationUtils;import redis.clients.jedis.BinaryClient.LIST_POSITION;import redis.clients.jedis.ShardedJedis;import redis.clients.jedis.ShardedJedisPipeline;import redis.clients.jedis.SortingParams;import redis.clients.jedis.Tuple;/** * Redis 操作类(基于ShardedJedis Client) * * */public class RedisTemplate { private static final Logger logger = LoggerFactory.getLogger(RedisTemplate.class); @Autowired private RedisDataSource redisDataSource; /** * 断开连接 */ public void disconnect() { try { ShardedJedis jedis = redisDataSource.getRedisClient(); jedis.disconnect(); } catch (Exception t) { logger.error(t.getMessage(), t); } } private ShardedJedis getRedisClient() { return redisDataSource.getRedisClient(); } /** * 设置单个值 * * @param key * @param value * @return */ public String set(String key, String value) { String result = null; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.set(key, value); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 设置单个值 * * @param key * @param value * @return */ public String set(String key, String value, int seconds) { String result = null; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.set(key, value); jedis.expire(key, seconds); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 获取单个值 * * @param key * @return */ public String get(String key) { String result = null; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.get(key); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 判断是否存在某个值 * * @param key * @return */ public Boolean exists(String key) { Boolean result = false; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.exists(key); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } public String type(String key) { String result = null; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.type(key); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 在某段时间后失效 * * @param key * @param seconds * @return */ public Long expire(String key, int seconds) { Long result = null; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.expire(key, seconds); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 在某个时间点失效 * * @param key * @param unixTime * @return */ public Long expireAt(String key, long unixTime) { Long result = null; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.expireAt(key, unixTime); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 以秒为单位返回 key 的剩余过期时间 * * @param key * @return */ public Long ttl(String key) { Long result = null; ShardedJedis jedis = getRedisClient(); if (jedis == null) { return result; } try { result = jedis.ttl(key); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 设置或者清空key的value在offset处的bit值 * * @param key * key * @param offset * 位置 * @param value * 获取的值 * @return 是否已经设置 */ public boolean setbit(String key, long offset, boolean value) { ShardedJedis jedis = getRedisClient(); boolean result = false; if (jedis == null) { return result; } try { result = jedis.setbit(key, offset, value); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 获取到key的value在offset的bit值。 * * @param key * @param offset * @return */ public boolean getbit(String key, long offset) { ShardedJedis jedis = getRedisClient(); boolean result = false; if (jedis == null) { return result; } try { result = jedis.getbit(key, offset); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } /** * 设置和覆盖key的value,然后从offset开始,设置新的value。 * * @param key * key * @param offset * 位置 * @param value * 新的value * @return 修改后的字符串长度 */ public long setrange(String key, long offset, String value) { ShardedJedis jedis = getRedisClient(); long result = 0; if (jedis == null) { return result; } try { result = jedis.setrange(key, offset, value); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { redisDataSource.returnResource(jedis); } return result; } public void setRedisDataSource(RedisDataSource redisDataSource) { this.redisDataSource = redisDataSource; } public RedisDataSource getRedisDataSource() { return redisDataSource; }}
阅读全文
0 0
- RedisTemplate.java
- redisTemplate 操作
- RedisTemplate API
- RedisTemplate 分页
- redistemplate api
- RedisTemplate使用
- redisTemplate超时设置
- API:RedisTemplate<K,V>
- 静态redisTemplate的注入
- RedisTemplate的简单使用
- 关于RedisTemplate和StringRedisTemplate
- RedisTemplate的创建
- spring的RedisTemplate
- Redis缓存(RedisTemplate)
- Redis配置ssm+redisTemplate
- 关于RedisTemplate和StringRedisTemplate
- RedisTemplate缓存用法小记
- RedisTemplate序列化
- js实现分享功能
- http 学习笔记
- WebUtils封装返回值
- 前端面试之模块化-1、模块的写法
- 关于最小生成树的一些性质
- RedisTemplate.java
- 浅谈php接收POST数据的三种方式
- Pytorch框架下Finetune注意点
- 100个网络基础知识Q&A
- 如何区分Android wrap_content和fill_parent的详细说明
- RequestContextListener作用(涨知识了,转载自己保存)
- 登陆注册模块解析
- 安装`whl`文件
- hibernate配置文件属性catalog