何时使用Jedis缓存数据呢?

在项目中,如果碰到像商品数据、人员信息、设备信息、资产状况这些不太经常变动的数据,通常把它可以放到Redis数据库中。通过这样的方式来提高我们对数据提取和设置的速度。

如何在项目中使用Jedis缓存数据?

1. 创建一个缓存类(CacheSample)

2. 获取需要存储在Redis的数据;

3. 将获取到的JavaBean序列化为字符串

需要用到fastjson的依赖包


com.alibaba
fastjson
1.2.76

4. 将获取的对象序列化后存放到Redis中

Jedis jedis = new Jedis(“192.168.3.45”,”6379”); //链接服务器的Redis数据库 try{ List goodsList = ….. //获取数据库中需要保存到Redis的对象; jedis.auth(“12345”); //输入Redis数据库的访问密码 jedis.select(“3”); //选择3号数据库 for(Goods goods : goodsList){ String json = JSON.toJSONString(goods); //将Java对象序列化为JSON字符串 String key = “goods:”+goods.getGoodsId( ); //键可以使用“字符串+ID”的形式 jedis.set(key , json); } } catch(Exception e){ e.printStackTrace( ); }finally{ jedis.close( ); }

5. 如何处理获取的Redis数据库中的JSON数据

比如:通过ID检索Redis中存储的对象 Jedis jedis = new Jedis(“192.168.6.23”,”6379”); try{ jedis.auth(“12345”); jedis.select(“3”); String key = “goods:”+goodsId; //goodsId是需要检索对象的ID if(jedis.exists(key)){ String json = jedis.get(key); Goods goods = JSON.parseObject(json, Goods.class); //将json字符串转化为对应的Java对象

}else{ System.out.println(“处理key不存在的逻辑代码”); } }catch(Exception e){ e.printStackTrace( ); }finally{ jedis.close( ); }

注意:

向Redis存储的数据需要具备两个特性:

  1. 它不能太大
  2. 存储的数据应该是比较稳定的、更新频率比较低的