關於redis的非同步api, 為什麼很少有人用非同步方式?沒必要嗎?

時間 2021-05-30 00:12:06

1樓:hero

我覺得可能是因為redis本身的操作是單執行緒的,就算是你非同步呼叫api,到了redis還是會被放到佇列裡面,所以同步、非同步沒什麼區別感覺

2樓:韋易笑

方法1:

數數,發出去幾個請求,數一下,回來的時候,數一下,找到對應的請求,但是需要很多地方注意,別寫錯了,還有是讀一遍redis協議,看看是不是所有請求都有返回,或者乙個請求,肯定是乙個返回的,別搞錯了。

方法2:

Lua法,如果你用redis2.6以後,可以寫個lua函式 load到redis,每次請求時,呼叫lua函式,把transid傳入,lua做完查詢工作,把結果和 transid一起返回給你。

方法3:

如果你的redis是2.6以下,可以使用 MULTI + ECHO trans_id + QUERY + EXEC來實現,比如你要 「GET key1」,那麼,你非同步redis過去的時候應該是:

MULTI

ECHO ThisIsTheTransactionIdentifier

ECHO myTrans1

GET key1

EXEC然後你收到的結果是乙個 [ "ThisIsTheTransactionIdentifier", "myTrans1", "value1" ]的列表,

你可以根據前兩項識別出這是你哪個執行緒傳送的請求。

redis關於持久化的疑問?

劉學 因為redis自己也不知道距離上次持久化後,哪個key改過,哪個key沒改過,索性一股腦都搞了,順序寫盤也方便。redis受記憶體大小限制,不會搞出太大的檔案。然後就是資料版本的管理,乙個檔案對應乙個時間點的快照,這多清爽,搞成碎片化的,又複雜又沒什麼用。 已登出 儲存無數個細碎檔案顯然是不現...

非同步電機和同步電機中的 非同步 與 同步 指的是什麼?

小夜的花豆 交流電機分為兩種 1 感應電機 非同步電機 簡單理解的話,非同步的理解其實可以用能量守恆原則去解釋。輸入三相交流電的定子線圈形成旋轉磁場,拖動 鼠籠式轉子轉動。拖的永遠趕不上拉的。2 同步電機 也按照上面的理解,輸入三相交流電的定子線圈產生旋轉磁場,但是轉子不是普通的轉子啦。而是磁鐵磁鐵...

InnoDB的next key lock 為什麼是左開右閉的?

Next Key Locks 的定義就是記錄鎖加上之前的 gap,所以是左開右閉 但是分析加鎖的時候,想著左開右閉也沒什麼意義,比如 RR 防止幻讀,需要加 Next Key Locks 之前 再加上記錄之後的 Gap,也就是記錄加鎖,記錄前後的gap 開區間 也加鎖。你舉的例子,真的是 5,10 ...