redis存储的常见类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010785685/article/details/51793583

     最近一直搞redis,redis支持的类型想必大家都清楚,我试着存储最简单的字符串,尝试着存取list和list<map<k,v>>,一下就是几种存储方式,其实都是简单的get,set,但是转化就需要自己去写一些序列化方法了。


存取String:

public void test1(HttpServletRequest request, HttpServletResponse response) {
		//添加缓存(String)
		jediscluster.set("key", "1000");
		String string = jediscluster.get("<span style="font-family:KaiTi_GB2312;">key</span>");
		
		System.out.println("缓存添加成功,value="+string);
		//根据key删除缓存
		jediscluster.del("key");
		System.out.println("缓存删除成功");
	}

存取List:

public  void test2(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// 获取数据库名
		/*String dataBaseName = (String) request.getSession().getAttribute(
				CloudContext.DatabaseName);*/
		
		String dataBaseName ="itoo_freshmen";
		List<Convention> list=null;
		//查询redis,
		try {
			//从redis中取缓存数据,如果有直接返回缓存中的数据,没有的话查询数据库
			String json = jediscluster.get("key");
		if (!StringUtils.isEmpty(json)) {
				//把json转换成List
				list= JsonUtils.jsonToList(json, Convention.class);		
			}else{
				//此处代码是查询数据库的代码,自己的业务逻辑
				 list=conventionBean.queryAllConvention(dataBaseName);
				
				//返回结果之前,向缓存中添加数据(是否添加根据业务逻辑决定)
				try {
					//value是list,需要把list转换成json数据。
					jediscluster.set("key", JsonUtils.objectToJson(list));
				} catch (Exception e) {
					e.printStackTrace();
				}
			}

存取List<map<k,v>>格式:和list类似,只是序列化的方法为如下代码:

 public static <T> List<Map<Serializable,Serializable>> jsonToList1(String jsonData, Class<T> beanType) {
	    	JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
	    	try {
	    		List<Map<Serializable,Serializable>> list = MAPPER.readValue(jsonData, javaType);
	    		return list;
			} catch (Exception e) {
				e.printStackTrace();
			} 
	    	
	    	return null;
	    }

其实存取很简单,set,get.但是有些就为了能直接用我们用的格式,需要转换一下,就是这么简单。

猜你喜欢

转载自blog.csdn.net/u010785685/article/details/51793583