你的位置:首页 > 软件开发 > Java > spring整合redis客户端及缓存接口设计

spring整合redis客户端及缓存接口设计

发布时间:2016-01-26 17:00:16
一、写在前面缓存作为系统性能优化的一大杀手锏,几乎在每个系统或多或少的用到缓存。有的使用本地内存作为缓存,有的使用本地硬盘作为缓存,有的使用缓存服务器。但是无论使用哪种缓存,接口中的方法都是差不多。笔者最近的项目使用的是memcached作为缓存服务器,由于memcached的一 ...

一、写在前面

缓存作为系统性能优化的一大杀手锏,几乎在每个系统或多或少的用到缓存。有的使用本地内存作为缓存,有的使用本地硬盘作为缓存,有的使用缓存服务器。但是无论使用哪种缓存,接口中的方法都是差不多。笔者最近的项目使用的是memcached作为缓存服务器,由于memcached的一些限制,现在想换redis作为缓存服务器。思路就是把memached的客户端换成redis客户端,接口依然是原来的接口,这样对系统可以无损替换,接口不变,功能不变,只是客户端变了。本文不介绍缓存的用法,不介绍redis使用方法,不介绍memcached与redis有何区别。只是实现一个redis客户端,用了jedis作为第三方连接工具。

二、一些想法

首先贴一下现项目中同事编写的缓存接口:

/** * @ClassName: DispersedCachClient * @Description: 分布式缓存接口,每个方法:key最大长度128字符,valueObject最大1Mb,默认超时时间30天 * @date 2015-4-14 上午11:51:18 * */public interface DispersedCachClient {			/**	 * add(要设置缓存中的对象(value),)	 *	 * @Title: add	 * @Description: 要设置缓存中的对象(value),如果没有则插入,有就不操作。	 * @param key	键	 * @param valueObject	缓存对象	 * @return Boolean true 成功,false 失败	 */	public Boolean add(String key, Object valueObject);		/**	 * add(要设置缓存中的对象(value),指定保存有效时长)	 *	 * @Title: add	 * @Description: 要设置缓存中的对象(value),指定有效时长,如果没有则插入,有就不操作。	 * @param key	键	 * @param valuObject	缓存对象	 * @param keepTimeInteger	有效时长(秒)	 * @return Boolean true 成功,false 失败	 */	public Boolean add(String key, Object valueObject, Integer keepTimeInteger);		/**	 * 	 * add(要设置缓存中的对象(value),指定有效时间点。)	 *	 * @Title: add	 * @Description: 要设置缓存中的对象(value),指定有效时间点,如果没有则插入,有就不操作。	 * @date 2015-4-14 上午11:58:12	 * @param key	键	 * @param valuObject	缓存对象	 * @param keepDate	时间点	 * @return Boolean true 成功,false 失败	 */	public Boolean add(String key, Object valueObject, Date keepDate);		/**	 * 	 * set(要设置缓存中的对象(value),)	 *	 * @Title: set	 * @Description: 如果没有则插入,如果有则修改	 * @date 2015-4-14 下午01:44:22	 * @param key	键	 * @param valueObject	缓存对象	 * @return Boolean true 成功,false 失败		 */	public Boolean set(String key,Object valueObject) ;		/**	 * 	 * set(要设置缓存中的对象(value),指定有效时长)	 *	 * @Title: set	 * @Description: 指定有效时长,如果没有则插入,如果有则修改	 * @date 2015-4-14 下午01:45:22	 * @param key	键	 * @param valueObject	缓存对象	 * @param keepTimeInteger	保存时长(秒)	 * @return Boolean true 成功,false 失败	 */	public Boolean set(String key, Object valueObject, Integer keepTimeInteger);		/**	 * 	 * set(要设置缓存中的对象(value),指定有效时间点)	 *	 * @Title: set	 * @Description: 指定有效时间点,如果没有则插入,如果有则修改	 * @date 2015-4-14 下午01:45:55	 * @param key	键	 * @param valueObject	缓存对象	 * @param keepDate	有效时间点	 * @return Boolean true 成功,false 失败	 */	public Boolean set(String key, Object valueObject, Date keepDate);		/**	 * 	 * replace(要设置缓存中的对象(value),有效)	 *	 * @Title: replace	 * @Description: 有效,如果没有则不操作,如果有则修改	 * @date 2015-4-14 下午01:47:04	 * @param key	键	 * @param valueObject	缓存对象	 * @return Boolean true 成功,false 失败 	 */	public Boolean replace(String key,Object valueObject) ;		/**	 * 	 * replace(要设置缓存中的对象(value),指定有效时长)	 *	 * @Title: replace	 * @Description: 指定有效时长,如果没有则不操作,如果有则修改	 * @date 2015-4-14 下午01:47:30	 * @param key	键	 * @param valueObject	缓存对象	 * @param keepTimeInteger	缓存时长(秒)	 * @return Boolean true 成功,false 失败 	 */	public Boolean replace(String key, Object valueObject, Integer keepTimeInteger);		/**	 * 	 * replace(要设置缓存中的对象(value),指定有效时间点)	 *	 * @Title: replace	 * @Description: 指定有效时间点,如果没有则不操作,如果有则修改	 * @date 2015-4-14 下午01:48:09	 * @param key	键值对	 * @param valueObject	缓存对象	 * @param keepDate	有效时间点	 * @return Boolean true 成功,false 失败 	 */	public Boolean replace(String key, Object valueObject, Date keepDate);		/**	 * 	 * get(获得一个缓存对象)	 *	 * @Title: get	 * @Description: 获得一个缓存对象,响应超时时间默认	 * @date 2015-4-14 下午04:18:16	 * @param key	键	 * @return Obeject 	 */	public Object get( String key );		/**	 * 	 * getMulti(获得Map形式的多个缓存对象)	 *	 * @Title: getMulti	 * @Description: 获得Map形式的多个缓存对象,响应超时时间默认	 * @date 2015-4-14 下午04:53:07	 * @param keys	键存入的string[]	 * return Map<String,Object> 	 */	public Map<String,Object> getMulti( List<String> keys );		/**	 * 	 * gets(获得一个带版本号的缓存对象)	 *	 * @Title: gets	 * @Description: 获得一个带版本号的缓存对象	 * @date 2015-4-16 上午09:15:57	 * @param key	键	 * @return Object	 */	public Object gets(String key);		/**	 * 	 * getMultiArray(获得数组形式的多个缓存对象)	 *	 * @Title: getMultiArray	 * @Description: 获得数组形式的多个缓存对象	 * @date 2015-4-16 上午09:27:29	 * @param keys	键存入的string[]	 * @return Object[]	 * @throws	 */	public Object[] getMultiArray( List<String> keys );		/**	 * 	 * cas(带版本号存缓存,与gets配合使用)	 *	 * @Title: cas	 * @Description: 带版本号存缓存,与gets配合使用,超时时间默认	 * @date 2015-4-16 上午09:53:39	 * @param key	键	 * @param valueObject	缓存对象	 * @param versionNo		版本号	 * @return Boolean true 成功,false 失败 	 */	public boolean cas(String key, Object valueObject, long versionNo);			/** cas(带版本号存缓存,与gets配合使用)	 *	 * @Title: cas	 * @Description: 带版本号存缓存,与gets配合使用,指定超时时长	 * @date 2015-4-16 上午09:58:06	 * @param key	键	 * @param valueObject	缓存对象	 * @param keepTimeInteger	超时时长	 * @param versionNo		版本号	 * @return Boolean true 成功,false 失败	 */	public boolean cas(String key, Object valueObject, Integer keepTimeInteger, long versionNo);		/**	 * 	 * cas(带版本号存缓存,与gets配合使用)	 *	 * @Title: cas	 * @Description: 带版本号存缓存,与gets配合使用,指定超时时间点	 * @date 2015-4-16 上午10:02:38	 * @param key	键	 * @param valueObject	缓存对象	 * @param keepTime	超时时间点	 * @param versionNo		版本号	 * @return Boolean true 成功,false 失败 	 */	public boolean cas(String key, Object valueObject, Date keepDate, long versionNo);	/**	 * 	 * delete(删除缓存)	 *	 * @Title: delete	 * @Description: 删除缓存	 * @date 2015-4-16 上午11:20:13	 * @param key	键	 */	public boolean delete(String key);	}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:spring整合redis客户端及缓存接口设计

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录