浅谈Redis五种数据结构

       我们的项目牵涉到跨库跨表,使用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 数据结构:字符串 String set 设置一个字符串的值 value set world he...
    jellyb阅读 765评论 0 2
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,553评论 0 13
  • Redis的五种数据结构如下: String:字符串 Hash:字典 List:列表 Set:集合 Sorted ...
    yannhuang阅读 5,178评论 0 2
  • #晨读~心理咨询面谈技术# 第二章,基础 1-临床面谈有两个功能:1是对未来的来访者进行评估。2是为咨询和治疗打下...
    白纸折扇阅读 215评论 0 0
  • 我国酿酒历史悠久,考古发现新石器时代就已有陶制酒器,推测酒在我国至少有近5000年历史。古往今来,酒在无数的历史故...
    机会本人阅读 465评论 0 0