今天就跟大家聊聊有關(guān)怎么在Redis中利用Eval實現(xiàn)鍵值自增,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)服務(wù)項目包括象州網(wǎng)站建設(shè)、象州網(wǎng)站制作、象州網(wǎng)頁制作以及象州網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,象州網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到象州省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!在PHP上使用Redis 給多個鍵值進行自增,示例如下:
$set['money'] = $this->redis->hIncrByFloat($key, $hour .'_money', $data['money']); $set['ip'] = $this->redis->hIncrBy($key, $hour .'_ip', $data['ip']); $set['uv'] = $this->redis->hIncrBy($key, $hour .'_uv', $data['uv']); $set['pv'] = $this->redis->hIncrBy($key, $hour .'_pv', $data['pv']); $this->redis->hSet($key, $hour, array($data['money'], $data['ip'], $data['uv'], $data['pv']));
如果這樣寫可能需要請求五次,可以通過 Eval 方法來一次完成,大大提高效率
$script = 'local money = redis.call("hIncrByFloat", KEYS[1], ARGV[1], ARGV[2]);'; $script .= 'local ip = redis.call("hIncrBy", KEYS[1], ARGV[3], ARGV[4]);'; $script .= 'local uv = redis.call("hIncrBy", KEYS[1], ARGV[5], ARGV[6]);'; $script .= 'local pv = redis.call("hIncrBy", KEYS[1], ARGV[7], ARGV[8]);'; $script .= 'local val = money ..",".. ip ..",".. uv ..",".. pv;'; $script .= 'redis.call("hSet", KEYS[1], ARGV[2], val);'; $script .= 'return val;'; $result = $this->redis->evaluate($script, [$key, $hour, $hour .'_money', $data['money'], $hour .'_ip', $data['ip'], $hour .'_uv', $data['uv'], $hour .'_pv', $data['pv']], 2); var_dump($result);
Redis 用的 Lua 語法,我也不熟悉,這個字符串拼接方式也很特別的是兩個點號 “..”
money ..",".. ip ..",".. uv ..",".. pv 拼接后 0.01,1,2,3
看完上述內(nèi)容,你們對怎么在Redis中利用Eval實現(xiàn)鍵值自增有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)站欄目:怎么在Redis中利用Eval實現(xiàn)鍵值自增-創(chuàng)新互聯(lián)
本文路徑:http://www.rwnh.cn/article4/cespoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計公司、網(wǎng)站導(dǎo)航、用戶體驗、品牌網(wǎng)站建設(shè)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)