博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java操作redis
阅读量:6418 次
发布时间:2019-06-23

本文共 3399 字,大约阅读时间需要 11 分钟。

  hot3.png

一、首先准备jar包:

redis.clients
jedis
2.5.0

jedis是核心jar包。

二、redis.properties:

redis.pool.maxActive=100 //最大活动链接数redis.pool.maxIdle=20//最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连//接将被标记为不可用,然后被释放。设为0表示无限制。redis.pool.maxWait=3000//最大等待时间redis.ip=localhost //运行redis服务的ipredis.port=6379 // redis服务的端口

三、RedisUtil.java:

public  static  JedisPool jedisPool; // 池化管理jedis链接池	static {		//从redis.propertise读取相关的配置		ResourceBundle resourceBundle = ResourceBundle.getBundle("redis");		int maxActive = Integer.parseInt(resourceBundle.getString("redis.pool.maxActive"));		int maxIdle = Integer.parseInt(resourceBundle.getString("redis.pool.maxIdle"));		int maxWait = Integer.parseInt(resourceBundle.getString("redis.pool.maxWait"));		String ip = resourceBundle.getString("redis.ip");		int port = Integer.parseInt(resourceBundle.getString("redis.port"));		JedisPoolConfig config = new JedisPoolConfig();  		//设置最大连接数		config.setMaxTotal(maxActive);		//设置最大空闲数		config.setMaxIdle(maxIdle);		//设置超时时间		config.setMaxWaitMillis(maxWait);		//初始化连接池		jedisPool = new JedisPool(config, ip, port); 	}

//向缓存中设置字符串内容:

public static boolean  set(String key,String value) throws Exception{		Jedis jedis = null;		try {			jedis = jedisPool.getResource();			jedis.set(key, value);			return true;		} catch (Exception e) {			e.printStackTrace();			return false;		}finally{			jedisPool.returnResource(jedis);		}	}

//向缓存中设置字符串内容

public static boolean  set(String key,Object value){		Jedis jedis = null;		try {			String objectJson = JSON.toJSONString(value);			jedis = jedisPool.getResource();			jedis.set(key, objectJson);			return true;		} catch (Exception e) {			e.printStackTrace();			return false;		}finally{			jedisPool.returnResource(jedis);		}	}

//根据key删除缓存中得对象

public static boolean del(String key){		Jedis jedis = null;		try {			jedis = jedisPool.getResource();			jedis.del(key);			return true;		} catch (Exception e) {			e.printStackTrace();			return false;		}finally{			jedisPool.returnResource(jedis);		}	}

//根据key 获取内容

public static Object get(String key){		Jedis jedis = null;		try {			jedis = jedisPool.getResource();			Object value = jedis.get(key);			return value;		} catch (Exception e) {			e.printStackTrace();			return false;		}finally{			jedisPool.returnResource(jedis);		}	}

//根据key 获取对象

public static 
T get(String key,Class
clazz){ Jedis jedis = null; try { jedis = jedisPool.getResource(); String value = jedis.get(key); return JSON.parseObject(value, clazz); } catch (Exception e) { e.printStackTrace(); return null; }finally{ jedisPool.returnResource(jedis); } }}

四、测试:

//保存对象	@Test	public void userCache(){		//向缓存中保存对象		UserDO jin = new UserDO();		jin.setUserId(1111);		jin.setSex(1);		jin.setUname("金金");		jin.setUnick("jin");		jin.setEmail("978954852@qq.com");		//调用方法处理		boolean reusltCache = RedisUtil.set("jin", jin);		if (reusltCache) {			System.out.println("向缓存中保存对象成功。");		}else{			System.out.println("向缓存中保存对象失败。");		}	}

输入图片说明

输入图片说明

获取对象	@Test	public void getUserInfo(){		UserDO jin = RedisUtil.get("jin",UserDO.class);		if(jin != null){			System.out.println("从缓存中获取的对象," + jin.getUname() + "@" + jin.getEmail());		}	}

输入图片说明

这里只写出了一个String数据类型的操作,如果需要操作hash,List,set,sortset之类的,同理 封装一下hmset,hmget,lpush,lrange,sadd之类的方法到RedisUtil中,以后涉及到redis的操作, 就直接调用RedisUtil中的方法即可。

转载于:https://my.oschina.net/jinxf/blog/687096

你可能感兴趣的文章
spring boot + mybatis 同时访问多数据源
查看>>
URL中汉字转码
查看>>
[转]go正则实例
查看>>
Selector中关于顺序的注意事项
查看>>
小黑小波比.清空<div>标签内容
查看>>
Java中的ExceptionInInitializerError异常及解决方法
查看>>
Spring 注入bean时的初始化和销毁操作
查看>>
java线程同步原理(lock,synchronized)
查看>>
MyEclipse中使用Hql编辑器找不到Hibernate.cfg.xml文件解决方法
查看>>
yRadio以及其它
查看>>
第四节 对象和类
查看>>
闪迪(SanDisk)U盘防伪查询(官方网站)
查看>>
Android onMeasure方法介绍
查看>>
无锁数据结构
查看>>
MySQL的变量查看和设置
查看>>
android onNewIntent
查看>>
XML特殊符号
查看>>
kaptcha可配置项
查看>>
JavaMail邮箱验证用户注册
查看>>
系统时间——ntpd
查看>>