美文网首页
浅谈Redis五种数据结构

浅谈Redis五种数据结构

作者: 马仙阳 | 来源:发表于2019-01-07 10:58 被阅读0次

           我们的项目牵涉到跨库跨表,使用ElasticSearch来解决。比较麻烦的是,ElasticSearch设置的in数量不可以超过500。在部门和人员数量少的时候这些并不是问题,然而对于某些大客户,他们的部门和人员的数量查出来之后仍然非常巨大,所以就采用了,分割开再合并的做法。这样的做法带来一个问题就是查询非常耗时,给客户带的体验不好。为了解决这个慢问题,使用redis做缓存,把要做的查询,放在凌晨查询,一天查一次。虽然可能出现误差,不过影响是可控的。

          redis有五种数据结构。String,Hash,Set,SortedSet,List。

    1.String

    String类似于Java的Hashmap,需要指定key和value,都是String类型。使用的时候get("")就可以。我们还可以设置一下它的过期时间。

    举个栗子,你想存一个List<Object>,有效期时间是24小时。首先设置key,key可以按照项目的需要命名,value由于是一个String,可以使用阿里的fastjson,JSONArray.toJSONString(),取得时候可以这么做
    JSONArray jsonArray = JSONArray.parseArray(redisString);

    for (int i =0; i < jsonArray.size(); i++) {

    staffBirthdayList.add(jsonArray.getObject(i, StaffBirthday.class));

    }

    设置一下过期时间,以秒为单位。

    2.Hash

    Hash类似于Java的对象。比如这个Hash名称是Student,学生有姓名和年龄。你可以设置hmset Student name zhanghua age 18,更多更详细的只是可以参考下面:
    https://www.cnblogs.com/guangye/p/7441936.html

    3.List

    List是一个队列,有顺序的,可以重复。

    https://www.cnblogs.com/idiotgroup/p/5575236.html

    4.Set

    Set是一个集合,它的特点是不可重复,它的无序的。

    5.SortedSet

    SortedSet是Set的一个变种,在插入元素的时候指定元素的顺序,从而实现有顺序。所以对比List和Set它的效率是最低的。

    所以,使用哪种数据结构可以根据自己的需要。

    相关文章

      网友评论

          本文标题:浅谈Redis五种数据结构

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