Redis高併發場景應用

2021-10-02 16:05:15 字數 1416 閱讀 6681

步驟1:先登入你的京東賬號,清空以前購物車,然後新增一件商品a,保證你的購物車只有一件商品a。

步驟2:退出登入,購物車新增商品b,然後關閉瀏覽器再開啟。(請問:購物車的商品b是否存在?)

步驟3:再次登入你的京東賬號。(請問:你的購物車有幾件商品?)

往購物車加入2件商品

採用hash資料結果,key=cart:user:使用者id

127.0.0.1:6379> hset cart:user:1000 101 1

(integer) 1

127.0.0.1:6379> hset cart:user:1000 102 1

(integer) 1

127.0.0.1:6379> hgetall cart:user:1000

1) "101"

2) "1"

3) "102"

4) "1"

修改購物車的資料,為某件商品新增數量

127.0.0.1:6379> hincrby cart:user:1000 101 1

(integer) 2

127.0.0.1:6379> hincrby cart:user:1000 102 10

(integer) 11

127.0.0.1:6379> hgetall cart:user:1000

1) "101"

2) "2"

3) "102"

4) "11"

統計購物車有多少件商品

127.0.0.1:6379> hlen cart:user:1000

(integer) 2

刪除購物車某件商品

127.0.0.1:6379> hdel cart:user:1000 102

(integer) 1

127.0.0.1:6379> hgetall cart:user:1000

1) "101"

2) "2"

步驟1:登入狀態下新增商品到購物車
/**

* 新增購物車

*/public void addcart(cart obj) else

}/**

* 修改購物車的數量

*/public void updatecart(cart obj)

/***刪除購物車

*/public void delcart(long userid, long productid)

public cartpage findall(long userid)

cartpage.setcartlist(cartlist);

return cartpage;

}

步驟2:用swagger體驗

使用redis 處理高併發場景

1.原理 當同乙個使用者獲取鎖之後,會讓該使用者一直持有鎖。同樣 的使用者再次獲取,會根據原子性 lock返回true。獲取鎖 非公平鎖 預設獲取超時為2分鐘 public boolean lock 獲取鎖 非公平鎖 獲取超時為timeoutseconds秒 public boolean lock ...

高併發場景 多執行緒,訊息佇列應用

高併發產生的應用場景 在同時很多人同時訪問乙個業務一樣。例如很多人都想上廁所但是只有乙個廁所,每次只能就去乙個人乙個人結束後另乙個人才能上廁所這個屬於單執行緒產生的效果 以上兩種場景唯一不變的是廁所每次只有一人能進行,還有上廁所的人,變的是廁所變多了 訊息佇列 訊息佇列相當於將上廁所的每個人都加入到...

Redis高併發和高可用

如何保證 redis 的高併發和高可用?redis 的主從複製原理能介紹一下麼?redis 的哨兵原理能介紹一下麼?其實問這個問題,主要是考考你,redis 單機能承載多高併發?如果單機扛不住如何擴容扛更多的併發?redis 會不會掛?既然 redis 會掛那怎麼保證 redis 是高可用的?其實針...