如何刪除redis的hash結構中第一個域?
PHP中文网
PHP中文网 2017-04-24 09:12:30
0
3
714

例如:

user:1 name "zhangsan"
user:1 num "001"

user:2 name "lisi"
user:2 num "002"

user:3 name "wang"
user:3 num "003"

在不指定user:1的情況下刪除第一條域user:1。
其實需求類似list中的lpop,但還是現在需要hash這種資料結構來記錄id。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
大家讲道理

hash結構是沒有順序的,所以第一條是什麼都不知道,何來的刪除第一條,你所認為的第一條只是你插入的順序中的第一條,但是很抱歉hash並不依照你的插入順序進行排序,所以你就算遍歷hash也未必能夠得到你想要的結果。
如果希望遍歷順序保持與插入順序一致,可使用list。
你的需求可以透過兩個結構來實現,一個list用於維護集合順序,另一個hash用於保存k-v數據,刪除時從list中pop出一個數據,然後到hash中根據key進行刪除即可。

PHPzhong

額,那隻能hKeys去取出所有key值,然後在應用層去取出第一個key,然後hget同時hdel

大家讲道理

哈希鍊錶、//刪除單一實體
$redis->hDel('hashkey', 'key1');

//刪除整個hash
$redis->del('hashkey');

刪除一個redis的key都是用del方法, 不管是string,hash,list,set等類型, 都一樣,RPOP也可以取出來。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!