redis在專案中的使用

2021-07-27 15:00:06 字數 1658 閱讀 2324

1. 各種計數,商品維度計數和使用者維度計數

2) "6"

2. 儲存社交關係

譬如將使用者的好友/粉絲/關注,可以存在乙個sorted set中,score可以是timestamp,這樣求兩個人的共同好友的操作,可能就只需要用求交集命令即可。

redis> zadd user:100000:follow 61307510400000 "100001" //score 為timestamp

(integer) 1

redis> zadd user:100000:follow 61307510402300 "100002"

(integer) 1

redis> zadd user:100000:follow 61307510405600 "100003"

(integer) 1

redis> zadd user:200000:follow 61307510400000 "100001"

(integer) 1

redis> zadd user:200000:follow 61307510402300 "100005"

(integer) 1

redis> zadd user:200000:follow 61307510405600 "100004"

(integer) 1

redis> zinterstore out:100000:200000 1 user:100000:follow user:200000:follow //交集命令,獲得共同關注

(integer) 2

redis> zrange out:100000:200000 0 -1

1) "100001"

相對memcached 簡單的key-value儲存來說,redis眾多的資料結構(list,set,sorted set,hash, etc)可以更方便cache各種業務資料,效能也不亞於memcached。

note: rpush pagewviews.user: expire pagewviews.user: 60 //注意要update timeout

btw, 更複雜一點的實時計算可以採用storm。

5. 使用者timeline/feeds

在逛 有個類似微博的欄目我關注,裡面包括關注的人、主題、品牌的動態。redis在這邊主要當作cache使用。

redis> zadd user:100000:feed:topic  61307510400000 //score 為timestamp

(integer) 1

redis> expire user:100000:feed:topic 24*60*60 //set timeout to one day

(integer) 1

redis> zadd user:100000:feed:friend 61307510400000 //不同型別feed

(integer) 1

redis> expire user:100000:feed:friend 24*60*60 //set timeout

(integer) 1

6. 最新列表&排行榜(使用者剛剛喜歡的商品,etc)

這裡採用redis的list資料結構或sorted set 結構, 方便實現最新列表or排行榜 等業務場景。

7. 訊息通知

4) "1"

redis在專案中的使用

快取的使用就是為了提高效率,避免重複的io操作浪費效率。查詢時使用,如selectbyid value 快取區名稱,key 在快取區內對應的鍵,表示查詢快取區 user 中key為引數id的快取,如果沒有則查詢資料庫,並把資料放入快取中 注意這裡快取的資料是指方法執行完成返回的結果 以後直接從緩訪問...

在專案中使用redis

在專案中使用redis,今天我初步學習了redis整合在j a專案中的方法,這些都是比較初級的入門知識。1.先引入相關的jar包,我這裡使用的是jedis 2.1.0.jar,通過這個jar包來連線redis的服務端。2.j a鏈結redis服務端 程式中的setup方法就是連線redis服務端的方...

Redis在專案中的幾種使用

今天來講一講專案中使用redis的幾種用法 可以使用集合或者雜湊表來完成贊踩 使用集合的sadd和srem來完成時,首先我們需要建立兩個集合,乙個贊集合,乙個踩集合 public class jedisdemo public static long like string userid public...