redis存储集合的方法的hset()和hget()方法,这两个方法是采用哈希表的方式来实现的,在哈希表中给定一个哈希码来存储集合,而set()和get()方法只是通过获取key来获取它的value的值,相对于hset和hget方法,有点类似于二维直角坐标系和三维直角坐标系的区别。
redis设计类:
public class MusicRedis {
private final JedisPool jedisPool;
public MusicRedis(String ip,int port){
jedisPool = new JedisPool(ip,port);
}
public long hset(String hkey,String key,String value){
Jedis jedis = jedisPool.getResource();
long result = jedis.hset(hkey,key,value);
jedis.close();
return result;
}
public String hget(String hkey,String key){
Jedis jedis = jedisPool.getResource();
String result = jedis.hget(hkey,key);
jedis.close();
return result;
}
}
在测试类中的代码如下:
public void testRedis(){
musicList.setTopic("1");
List<MusicList> lists = new ArrayList<>();
List<MusicList> tt = new ArrayList<>();
for (int i =0;i<10 ;i++)
lists.add(musicList);
redis.hset("qqqq","musiclist",new Gson().toJson(lists));
String result = redis.hget("qqqq","musiclist");
if (!StringUtil.isBlank(result)){
tt = new Gson().fromJson(result,new TypeToken<List<MusicList>>(){}.getType());
}
for (MusicList m : tt){
System.out.println(m);
}
}
测试结果如下图所示:
image.png
使用网页使用redis前后进行时间测试,因为第一次为连接数据库,时间600MS较长,扣除这一次
测试代码段:
image.png
第一次测试结果:
image.png
第二次测试结果:
image.png
第三次测试结果:
image.png
后面几次访问该网页,redisAfter的时间都是1MS没有变了,可以看出来使用redis缓存在时间上比没使用缓存好很多。
网友评论