當我們使用sadd
在集合中插入成員時,是否存在確定性的方式來插入數據? 例如,smembers:如何決定放置順序?
127.0.0.1:6380> smembers test
1) "hello world"
2) "hello"
3) "hello world 1234212"
4) "hello world 123"
127.0.0.1:6380> sadd test "aman"
(integer) 1
127.0.0.1:6380> smembers test
1) "hello world"
2) "hello"
3) "hello world 1234212"
4) "hello world 123"
5) "aman"
127.0.0.1:6380> sadd test "stack overflow"
(integer) 1
127.0.0.1:6380> smembers test
1) "hello world 1234212"
2) "hello world 123"
3) "hello world"
4) "aman"
5) "stack overflow"
6) "hello"
如可以似乎,當我插入的「堆棧溢出」,「你好」被示出在最後一個索引,而不是索引2作爲在先前查詢。有沒有解釋這種行爲?
你的意思是「不確定性」嗎?如果我在同一組成員中使用分子,它將始終以一個順序返回成員。所以,在增加一個新成員後,訂單可能會發生變化,事情正在改變,我正在試圖理解。 –
我的意思是確定性 - 閱讀哈希表以瞭解它們如何工作,存儲桶衝突等等。然後,請記住,Redis對Hashes也有兩種不同的編碼(取決於大小和配置指令,可以使用一種或另一種)。 –