當前位置:編程學習大全網 - 源碼下載 - Spring Data Redis - Redis Repositories使用技巧

Spring Data Redis - Redis Repositories使用技巧

使用 Redis Repositories 可以方便的在redis中用Redis Hash的方式存儲各種對象類型。

使用方法 非常簡單,僅需定義接口和在需要存儲的對象上增加註解:

在使用redis的集群模式後,redis會對數據進行分片,分片能使key均勻地分布到集群的機器上去,能保證數據的壹致性,有著眾多的優點。但是在某些業務場景,又要求某些相關聯的key分配到相同機器。這就是分片技術的矛盾之處。

解決方法還是從分片技術的原理上找:分片,就是壹個hash的過程:對key做md5,sha1等hash算法,根據hash值分配到不同的機器上。為了實現將key分到相同機器,就需要相同的hash值,即相同的key(改變hash算法也行,但不簡單)。但key相同是不現實的,因為key都有不同的用途。

例如user:user1:ids保存用戶的tweets ID,user:user1:tweets保存tweet的具體內容,兩個key不可能同名。仔細觀察user:user1:ids和user:user1:tweets,兩個key其實有相同的地方,即user1。能不能拿這壹部分去計算hash呢?

這就是Hash Tag,允許用key的部分字符串來計算hash。 當壹個key包含 {} 的時候,就不對整個key做hash,而僅對 {} 包括的字符串做hash。 假設hash算法為sha1。對user:{user1}:ids和user:{user1}:tweets,其hash值都等同於sha1(user1)。

Spring Data Redis的官方文檔 也建議在使用Cluster模式的時候使用Hash Tag,這樣可以讓對象的屬性位於同壹個分片,方便查找和計算。

參考文獻:

  • 上一篇:unity Shape渲染管道是什麽意思,如何應用?
  • 下一篇:股票公式中如何得到k線的個波段低點值
  • copyright 2024編程學習大全網