淺談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它的效率是最低的。

所以,使用哪種數據結構可以根據自己的需要。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Redis 數據結構:字符串 String set 設置一個字符串的值 value set world he...
    jellyb閱讀 844評論 0 2
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,915評論 0 13
  • Redis的五種數據結構如下: String:字符串 Hash:字典 List:列表 Set:集合 Sorted ...
    yannhuang閱讀 5,223評論 0 2
  • #晨讀~心理咨詢面談技術# 第二章,基礎 1-臨床面談有兩個功能:1是對未來的來訪者進行評估。2是為咨詢和治療打下...
    白紙折扇閱讀 225評論 0 0
  • 我國釀酒歷史悠久,考古發(fā)現新石器時代就已有陶制酒器,推測酒在我國至少有近5000年歷史。古往今來,酒在無數的歷史故...
    機會本人閱讀 557評論 0 0

友情鏈接更多精彩內容