PC
redis是常用的缓存管理工具,因其读取内存的特性,常被高并发对性能有要求的项目所采用,这里介绍java将对象存入redis并获得该对象的常用方法。
1.将对象以键值对形式存入redis中的set方法:/** * 增加 * @throws Exception * */ public void set(String key,Object value) throws CoreException { if(StringUtil.isEmpty(key)||value==null){ throw new CoreException(PayErrorConstant.C_PAY_BIZ00000,new Object[]{'key或者value不能为空'}); } ShardedJedis jedis = (ShardedJedis)pool.getResource(); try{ jedis.set(SafeEncoder.encode(key), SerializeUtil.serialise(value)); }catch(Throwable e){ throw new CoreException(PayErrorConstant.C_PAY_BIZ00000,new Object[]{'插入redis数据异常'}); }finally{ pool.returnResource(jedis); } }
2.通过key获得值的get方法: public Object get(String key) throws CoreException{ if(StringUtil.isEmpty(key)){ throw new CoreException(PayErrorConstant.C_PAY_BIZ00000,new Object[]{'key不能为空'}); } Object obj=null; try{ ShardedJedis jedis = (ShardedJedis)pool.getResource(); try{ byte[] object=jedis.get(SafeEncoder.encode(key)); if(object!=null){ obj=SerializeUtil.unserialize(object); } }catch (Throwable e) { e.printStackTrace(); throw new CoreException(PayErrorConstant.C_PAY_BIZ00000,new Object[]{'获取redis值异常'}); }finally{ pool.returnResource(jedis); } if(obj==null){ return obj; } }catch (Exception e) { logger.info('未找到可用的key:'+key); try{ Map
3. 通过key 删除某个对象的方法: public void delete(String key) throws CoreException{ if(StringUtil.isEmpty(key)){ throw new CoreException(PayErrorConstant.C_PAY_BIZ00000,new Object[]{'key不能为空'}); } ShardedJedis jedis = (ShardedJedis)pool.getResource(); try{ jedis.del(SafeEncoder.encode(key)); }catch(Throwable e){ throw new CoreException(PayErrorConstant.C_PAY_BIZ00000,new Object[]{'删除redis数据异常'}); }finally{ pool.returnResource(jedis); } }
4.包含关键字删除,按关键字删除一批key值包含该关键字的对象:/** * 包含关键字删除 * @param reqkey * @throws CoreException */ public void deleteByRegExp(String reqkey) throws CoreException{ if(StringUtil.isEmpty(reqkey)){ throw new CoreException(PayErrorConstant.C_PAY_BIZ00000,new Object[]{'key不能为空'}); } Set
5. 取出包含关键字的所有key值的对象:/** * 取出包含关键字所有key * @param reqkey * @return * @throws CoreException */ public Set
如有不明者,还请咨询专业人士。