redis存储集合

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 lists = new ArrayList<>();
        List 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>(){}.getType());
        }

        for (MusicList m : tt){
            System.out.println(m);
        }

    }   

测试结果如下图所示:


redis存储集合_第1张图片
image.png

使用网页使用redis前后进行时间测试,因为第一次为连接数据库,时间600MS较长,扣除这一次

测试代码段:


redis存储集合_第2张图片
image.png

第一次测试结果:


image.png

第二次测试结果:


image.png

第三次测试结果:


image.png

后面几次访问该网页,redisAfter的时间都是1MS没有变了,可以看出来使用redis缓存在时间上比没使用缓存好很多。

你可能感兴趣的:(redis存储集合)