欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php hsetnx

吉茹定1年前6瀏覽0評論
PHP HSETNX到底是什么呢?我們知道在PHP中,有很多種方法可以進(jìn)行鍵值對操作。但是,如果要同時(shí)操作多個(gè)值的話,使用 HSETNX 就是一種很不錯(cuò)的方法。接下來本文將為大家詳細(xì)介紹一下PHP HSETNX。 HSETNX是什么? HSETNX是Redis中的一種命令。它的作用是,當(dāng)Key不存在時(shí),為 Key 中的 Field 設(shè)定一個(gè)值。如果 Key 或 Field 已存在,則設(shè)置失敗。 看起來很簡單,但是我們實(shí)際使用時(shí)需要注意一些細(xì)節(jié)。接下來我們來看一下一些case。 Case 1 假如 Redis 數(shù)據(jù)庫中沒有Key為fruit的元素,我們可以通過以下代碼來新增一條數(shù)據(jù):
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$array = ['apple' =>3, 'pineapple' =>5, 'banana' =>1];
array_walk($array, function($value, $key) use ($redis) {
$redis->hSetNx('fruit', $key, $value);
});
在這段代碼中,我們建立了一個(gè) Redis 實(shí)例,并把三個(gè)水果的數(shù)量用數(shù)組的形式存入一個(gè)變量中。然后使用了 array_walk() 函數(shù)將每個(gè)水果都插入到了 Redis 中。 在插入時(shí),我們調(diào)用了 hSetNx() 方法,將數(shù)據(jù)插入到了名為 'fruit' 的 key 中。其中的 hSetNx() 方法就是HSETNX。我們使用 hSet() 的話,它會(huì)覆蓋掉舊值,不適合我們的需求。 通過上面這段代碼,我們成功地添加了一個(gè)名為 'fruit' 的 key,并插入了三個(gè)字段和它們的對應(yīng)值。現(xiàn)在我們再來看看第二個(gè) case。 Case 2 我們將代碼稍作改動(dòng):
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$array = ['apple' =>3, 'pineapple' =>5, 'banana' =>1];
array_walk($array, function($value, $key) use ($redis) {
$redis->hSetNx('fruit', $key, $value);
});
$reinsert = $redis->hSetNx('fruit', 'apple', 5);
var_dump($reinsert);
在這段代碼中,我們調(diào)用了兩次 HSETNX。第一次是在插入數(shù)據(jù)時(shí)。接著在第二次 HSETNX 時(shí),我們嘗試使用 Key 為 'fruit',F(xiàn)ield 為 'apple' 的數(shù)據(jù)插入。這時(shí)候發(fā)現(xiàn) 'apple' 已經(jīng)存在了,所以 hSetNx() 方法返回 false,程序也會(huì)輸出 false。 最后,我們運(yùn)行一下這段代碼,它的輸出結(jié)果應(yīng)該是 bool(false)。 結(jié)語 雖然 HSETNX 并不是 Redis 的常用命令,但在多數(shù)場景下它還是一個(gè)非常有用的工具。通過合理使用 HSETNX,我們可以很容易地實(shí)現(xiàn)對多個(gè) Key 的操作。 當(dāng)然,為了將它處理得更加完善,我們需要更多地摸索。好了,關(guān)于HSETNX的介紹就到這里,希望能對讀者們有所幫助。