关于redis进行类似条件查询方法的学习

redis想像mysql关系数据库一样查询可以借助集合哈希表来进行,今天晚上我做的测试过程:
将数据库查询的表数据全部放入一个泛型集合中,然后通过对这个集合某些需要的数据进行筛选然后分别存入集合或者哈希表中。

    @Test
        public void testRedis(){
            JedisPool jedisPool = new JedisPool("127.0.0.1",6379);
            Jedis jedis = jedisPool.getResource();
            List<MusicList> lists = new ArrayList<>();
            for (int i = 0; i<1000;i++){
                MusicList musicList = new MusicList();
                musicList.setMusicFlag(i);
                lists.add(musicList);
            }
            List<MusicList> lt = new LinkedList<>();
            List<MusicList> ht = new LinkedList<>();
            List<MusicList> al = new LinkedList<>();

            Date date1 = new Date();

            for (int i = 0;i<1000;i++){
                al.add(lists.get(i));
                if (lists.get(i).getMusicFlag()<3){
                    lt.add(lists.get(i));
                    //  jedis.sadd("below_3",object2String(lists.get(i)));
                }

                if (lists.get(i).getMusicFlag()>=3){
                    ht.add(lists.get(i));
                    // jedis.sadd("high_3",object2String(lists.get(i)));
                }
            }
            jedis.hset("hhhh","musiclist",object2String(al));
            jedis.hset("hhhh","below_3",object2String(lt));
            jedis.hset("hhhh","high_3",object2String(ht));

            Date date2 = new Date();

            System.out.println("费时:"+(date2.getTime()-date1.getTime()));


            /*Set<String> set = jedis.smembers("below_3");
            for (String s:set){
                MusicList m = new Gson().fromJson(s,MusicList.class);
                System.out.println(m);
            }*/


        }

        public String object2String(Object o){
            return new GsonBuilder().serializeNulls().create().toJson(o);
        }

首先测试以上代码,通过将这一千条的数据放到哈希表中,计算时间,结果如下:

《关于redis进行类似条件查询方法的学习》 image.png

内存初始情况如下:

《关于redis进行类似条件查询方法的学习》 image.png

运行后的内存情况如下:

《关于redis进行类似条件查询方法的学习》 image.png

大概是花费了47MS,然后我们再使用redis提供的sadd集合的插入方式,结果如下:

《关于redis进行类似条件查询方法的学习》 image.png

内存初始情况如下:

《关于redis进行类似条件查询方法的学习》 image.png

运行后的内存情况如下:

《关于redis进行类似条件查询方法的学习》 image.png

对比两个方法,我们可以发现,用哈希表的插入可以节省不少的时间,并且在redis的内存使用消耗上,哈希表的插入方法比集合一个个的插入要消耗少一点

参考链接:
https://blog.csdn.net/zbw18297786698/article/details/52904316
http://www.runoob.com/redis/server-info.html

    原文作者:代码potty
    原文地址: https://www.jianshu.com/p/c6096b7600b5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞