Java原生操作Redis

我们平时在Spring Boot项目中常用Spring Data Redis 来操作Redis,但是在非Spring项目,或者对于初学者及学生一类,就有使用原生操作的需求。
话不多说,直接上代码:
连接Redis服务器类(此类可优化,改成redis连接池):

package redis;


import redis.clients.jedis.DefaultJedisClientConfig;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisClientConfig;
import redis.clients.jedis.DefaultJedisClientConfig.Builder;

public class RedisConn {
	//Redis服务器地址
	private static String host="192.168.31.8";
	//Redis端口号, 默认是6379
	private static int port = 6379;
	//Redis 密码,没有设置可以为空
	private static String password="";
	//Redis 默认链接的数据库
	private static int databaseNo=5;
	
	private static Jedis jedisConn = null;
	
	static {
		Builder config = DefaultJedisClientConfig.builder()
				.database(databaseNo);
		//密码不为空时候设置密码
		if(password!=null && !"".equals(password)) {
			config.password(password);
		}
		JedisClientConfig jedisClientConfig = config.build();
		jedisConn = new Jedis(host,port,jedisClientConfig);
	}
	public static Jedis getJedis() {
		try {
			return jedisConn;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public static void close() {
		if(jedisConn!=null) {
			jedisConn.close();
		}
	}
	
}

操作Redis类:

package redis;

import java.util.List;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jdc.utils.T;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.params.SetParams;

/**
 * Redis 操作助手
 *
 */
public class RedisHelper {
		
	private static Jedis redisConn;
	
	/**
	 * 构造函数获取redis连接
	 */
	public RedisHelper() {
		if(redisConn==null) {
			redisConn = RedisConn.getJedis();
		}
	}
	/**
	 * 设置字符串值
	 @param key Redis键
	 @param value 待设置的值
	 @return 操作成功则返回OK
	 */
	public String setCacheString(String key,String value) {
		return redisConn.set(key, value);
	}
	/**
	 * 设置字符串值
	 @param key Redis键
	 @param value 待设置的值
	 @param min 过期时间(分钟)
	 @return 操作成功则返回OK
	 */
	public String setCacheString(String key,String value,long min) {
		min = min==0?1:min;
		return redisConn.set(key, value,SetParams.setParams().ex(min*60));
	}
	/**
	 * 设置对象
	 @param key Redis键
	 @param obj 对象
	 @return 
	 */
	public <T> boolean setCacheObject(String key,T obj) {
		String rs = redisConn.set(key, JSON.toJSONString(obj));
		return "OK".equals(rs);
	}
	/**
	 * 设置List
	 @param key Redis键
	 @param list list数据
	 @return
	 */
	public <T> boolean setCacheList(String key,List<T> list) {
		String rs = redisConn.set(key, JSON.toJSONString(list));
		return "OK".equals(rs);
	}
	/**
	 * 设置过期时间
	 @param key Redis键
	 @param minute 过期时间(分钟)
	 @return
	 */
	public long expire(String key, long minute) {
		return redisConn.expire(key, minute*60);
	}
	/**
	 * 获取字符串值
	 @param key Redis键
	 @return
	 */
	public String getCacheString(String key) {
		return redisConn.get(key);
	}
	/**
	 * 获取对象
	 @param key Redis键
	 @param clazz 对象类型
	 @return
	 */
	public <T> T getCacheObject(String key,Class<T> clazz) {
		String json = redisConn.get(key);
		return JSONObject.parseObject(json, clazz);
		
	}
	/**
	 * 获取List
	 @param key Redis键
	 @param clazz list中元素的对象类型
	 @return
	 */
	public <T> List<T> getCacheList(String key,Class<T> clazz) {
		String json = redisConn.get(key);
		return JSONObject.parseArray(json, clazz);
		
	}
	/**
	 * 获取Redis中的键
	 @param pattern
	 */
	public boolean delete(String key) {
		long rs = redisConn.del(key);
		return rs==1;
	}
	/**
	 * 判断key是否存在
	 @param key Redis中的键
	 @return
	 */
	public boolean hasKey(String key) {
		return redisConn.exists(key);
	}
	
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值