jhipster入门之路疑问之四

来源:互联网 发布:魔镜大数据可视化 编辑:程序博客网 时间:2024/05/24 05:57
最近两三天要实现一个功能,***在线用户查询***,返回在线的所有用户。我的想法是从缓存中取,因为我们的设计师用户登录后要在缓存中存储他的基本信息。初次接触redis并不了解其原理和操作,只能借助网上的一些知识和spring action书中的一些讲解进行尝试。在尝试了很多次以后,终于实现了该功能,是利用的jedis。原因如下:1 尝试利用spring中的redistemplate来实现该功能,但是始终找不到如何获取缓存中所有数据,或者所有key值得方法。2 jedis中有keys()方法,可以通过传入正则表达式进行匹配全部    keys("*");3 spring的注解@cacheable的属性 key支持spel表达式,但是貌似不支持匹配全部。

总结一下:
1 ,利用jedis不可以直接new jedis 而是通过pool获取资源。

2 ,keys(“*”)返回的是Set<byte[]>redis.mget(keys) 参数是set,返回值是 byte[][]

3 ,redis在存储的时候会序列化,所以返回值要想使自定义的对象,需要反序列化。

代码如下,只是实现了所需功能,但是不规范,需要优化。

 // 利用jedis获取redis中缓存的在线用户信息    public List<UserInfoDTO> getkeys() {          long start = System.currentTimeMillis();          List<String> list = new ArrayList<>();        List<UserInfoDTO> list2 =new ArrayList<>();        //连接redis服务器         Jedis redis = new JedisPool(new GenericObjectPoolConfig(),        "host",port,50000,"password").getResource();        // 获取所有key          Set<byte[]> keySet = redis.keys("*".getBytes());          byte[][] keys = keySet.toArray(new byte[keySet.size()][]);         // 获取所有value          byte[][] values = redis.mget(keys).toArray(new byte[keySet.size()][]);          // 打印key-value对          for (int i = 0; i < keySet.size(); ++i) {              ByteArrayInputStream bais = null;            //反序列化            try {            bais = new ByteArrayInputStream(values[i]);            ObjectInputStream ois = new ObjectInputStream(bais);            list2.add((UserInfoDTO)ois.readObject());        }catch (Exception e) {            }         }        long end = System.currentTimeMillis();          // 计算耗时          System.out.println("Query " + values.length + " pairs takes " + (end - start) + " millis");          redis.close();          return list2;    }  
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 挪亚家拜茵家具 挪亚方舟故事 挪亚家家具质量怎么样 挪亚家的家具 挪亚家家具价格 挪亚方舟酒店 挪亚家家具价格表 挪吒 挪吒闹海 挪吒闹海的故事 挪威 挪威森林猫 skam挪威 挪威那 挪威首都 skam挪威版 挪威王室 挪威时间 挪威三文鱼 羞耻挪威 挪威拼音 挪威海怪 挪威国王 挪威skam 挪威语 挪威犬图片 挪威风景 挪威大学 挪威图片 挪威签证 挪威极光 挪威犬 挪威在哪里 挪威在哪 挪威人口 挪威景点 挪威峡湾 挪威留学 挪威特产 挪威移民 挪威旅游