美文网首页
关于redis进行类似条件查询方法的学习

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

作者: 代码potty | 来源:发表于2018-08-14 21:48 被阅读0次

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

相关文章

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

    redis想像mysql关系数据库一样查询可以借助集合哈希表来进行,今天晚上我做的测试过程:将数据库查询的表数据全...

  • Diango常用查询及表关系实现

    常用的查询方法: 常用查询条件: varchar>>>>>>>>>>>>>>CharFieldlongtext ...

  • c#11月13号

    上午学习使用mySQL进行表格操作,然后是数据库,command对象,SQL查询。下午练习了查询方法的使用。

  • 【转】Redis中Hash实现条件查询

    TAG Redis,Lua,Redis条件查询,Redis Hash条件查询,Redis根据值内容查询 原文链接 ...

  • redis 学习(1)-- redis 安装与启动

    redis 学习(1)-- redis 安装与启动 redis 特性 关于 redis 的介绍网上已经有很多信息了...

  • swoole中io

    关于其中的io操作,具体查看手册。下面给出两个小例子: Redis操作 前置条件redis服务hiredis库编译...

  • redis 持久化详解

    关于redis的安装和基本使用,参考本人博客: redis安装和基础入门 Redis数据库的学习与实践—Redis...

  • Redis网络架构及单线程模型

    最近略有闲暇时间,于是对Redis进行了一些学习,学习途径除了官方文档还有Redis源代码,,Redis源码总行数...

  • mongoose使用之查询篇

    查询基础 1、查询方法 mongoose查询使用最基础的方法就是find、findOne方法,前者查询所有满足条件...

  • redis设计与实现

    本章完全按照《redis设计与实现》该书进行学习和总结(http://redisbook.com/) redis中...

网友评论

      本文标题:关于redis进行类似条件查询方法的学习

      本文链接:https://www.haomeiwen.com/subject/qfebbftx.html