关于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);
        }

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


image.png

内存初始情况如下:


image.png

运行后的内存情况如下:
image.png

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


image.png

内存初始情况如下:


image.png

运行后的内存情况如下:
image.png

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,036评论 2 89
  • 转载:可能是目前最详细的Redis内存模型及应用解读 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据...
    meng_philip123阅读 1,450评论 1 22
  • 鱼儿难得清静,跳舞的大妈又来了,唉!这太不公平啦 狗狗我刚躺下,主人又要出去散步,唉!说什么呢走吧 鹦鹉学舌说话,...
    木貞ma阅读 78评论 0 4
  • 夏天的北京异常炎热,就算躲在全副空调的地铁通道,也会因为通风口时不时换气而无比闷热。刘辉刚下飞机,平常车不离身的他...
    成长源代码阅读 270评论 0 0
  • 湖北日报这样报道我们保健院:在恩施,有一个远近闻名的“副县级乡镇卫生院”——恩施州妇幼保健计划生育服务中心。副...
    精进的医生阅读 394评论 0 2