Redis简单实例
2016-04-11 09:55
573 查看
直接上源码 有不妥之处 望牛人指教!。。。 要用到jedis 需要引入两个jar包 可在我的资源中直接下载: commons-pool2-2.3.jar jedis-2.4.1.jar
Redis工具类
Redis工具类
package com.test.redis; import java.text.SimpleDateFormat; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; publicclass JedisUtils { privatestaticLogger log= LoggerFactory.getLogger(JedisUtils.class); privatestaticJedisPool pool= null; /** * 获得连接池 * @param ip * @paramport * @return JedisPool */ publicstatic JedisPoolgetPool(String ip,intport){ if(null == pool){ JedisPoolConfig config = new JedisPoolConfig(); //控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取; //如果赋值为-1,则表示不限制;如果pool已经分配了maxTotal个jedis实例,则此时pool的状态为exhausted(耗尽)。 config.setMaxTotal(500); //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。 config.setMaxIdle(5); //表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException; config.setMaxWaitMillis(20000); //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; config.setTestOnBorrow(true); pool = new JedisPool(config, ip, port,1500000); log.info("access ip: {1} port: {2} connect.",newString[]{ip,String.valueOf(port)}); } returnpool; } /** * 返还到连接池 * @param pool * @param redis */ publicstaticvoid returnSource(JedisPool pool,Jedis redis){ if(null != redis){ pool.returnResource(redis); } } /** * 获得数据 * @param key * @return */ publicstatic StringgetValue(String key){ String value = null; JedisPool pool = null; Jedis jedis = null; try{ pool = getPool("127.0.0.1",6379); jedis = pool.getResource(); value = jedis.get(key); }catch(Exception e){ pool.returnBrokenResource(jedis);//释放jedis对象 e.getMessage(); }finally{ returnSource(pool,jedis);//返还到连接池 } return value; } /** * 字符串转换为日期 * @param dateStr * @return * @author */ publicstatic DateStringToDate(String dateStr){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try{ if(!"".equals(dateStr)&&null!= dateStr){ date = format.parse(dateStr); } }catch(Exception e){ log.info("format dateStr error "+ e.getMessage()); returnnull; } return date; } /** * 日期转换为字符串 * @param dateStr * @return */ publicstatic StringdateToString(Date date){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = ""; try{ if(null != date){ dateStr = format.format(date); } }catch(Exception e){ log.info("format date error "+ e.getMessage()); returnnull; } return dateStr; } } Redis插入、查询数据测试类 package com.test.redis; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; public class RedisTest { publicstatic JedisPool pool = null; publicstatic Jedis jedis = null; publicstatic void main(String[] args) { pool= JedisUtils.getPool("127.0.0.1", 6379); jedis= pool.getResource(); insertData(jedis); selectData(jedis); } /** * 插入5000000条数据的时间计算 * * @param jedis */ publicstatic void insertData(Jedis jedis) { longstart = System.currentTimeMillis(); System.out.println(System.currentTimeMillis()); for(int i = 0; i < 5000000; i++) { Map<String,String> hashMap = new HashMap<String, String>(); hashMap.put("vehicled","" + i); hashMap.put("plateNo","No" + i); hashMap.put("simNo","No" + i); hashMap.put("location","测试测试"); hashMap.put("sendTime",JedisUtils.dateToString(new Date())); hashMap.put("velocity","" + i); hashMap.put("longitude","" + i); hashMap.put("latitude","" + i); hashMap.put("status","" + i); hashMap.put("alarmState","" + i); jedis.hmset("gpsInfo"+ i, hashMap); } System.out.println(System.currentTimeMillis()); longend = System.currentTimeMillis(); System.out.println(end- start); } /** * 查询1000000 条数据的时间计算 * * @param jedis */ publicstatic void selectData(Jedis jedis) { longstart = System.currentTimeMillis(); System.out.println(System.currentTimeMillis()); for(int i = 0; i < 1000000) { Map<String,String> map = jedis.hgetAll("gpsInfo" + i); Stringvehicled = map.get("vehicled"); StringplateNo = map.get("plateNo"); StringsimNo = map.get("simNo"); Stringlocation = map.get("location"); StringsendTime = map.get("sendTime"); Stringvelocity = map.get("velocity"); Stringlongitude = map.get("longitude"); Stringlatitude = map.get("latitude"); Stringstatus = map.get("status"); StringalarmState = map.get("alarmState"); System.out.println("vehicled= " + vehicled + "," + "plateNo = " +plateNo + "," + "simNo =" + simNo + "," +"location = " + location +"," + "sendTime = " +sendTime + "," + "velocity = " + velocity + "," +"longitude = " + longitude +"," + "latitude = " +latitude + "," + "status = " + status + "," +"alarmState = " + alarmState); } System.out.println(System.currentTimeMillis()); longend = System.currentTimeMillis(); System.out.println(end- start); } } }
相关文章推荐
- redis安装问题小结
- 使用 Redis 和 Python 构建一个共享单车的应用程序
- Redis偶发连接失败案例实战记录
- Redis中实现查找某个值的范围
- redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
- Redis和Memcached的区别详解
- 分割超大Redis数据库例子
- Redis总结笔记(一):安装和常用命令
- Redis sort 排序命令详解
- 用Redis实现微博关注关系
- redis中修改配置文件中的端口号 密码方法
- 在Ruby on Rails上使用Redis Store的方法
- Redis和Memcache的区别总结
- 在Node.js应用中使用Redis的方法简介
- Redis服务器的启动过程分析
- web 应用中常用的各种 cache详解
- 利用yum安装Redis的方法详解
- 从MySQL到Redis的简单数据库迁移方法
- 为啥懒 Redis 是更好的 Redis
- 利用Redis实现SQL伸缩的方法