亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Redis > 正文

php操作redis中的hash和zset類型數據的方法和代碼例子

2020-03-17 12:44:08
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php操作redis中的hash和zset類型數據的方法和代碼例子,本文共介紹了26組函數或方法,需要的朋友可以參考下
 
 

 前面一篇博客主要是string類型,list類型和set類型,下面hash類型和zset類型

1,hset

描述:將哈希表key中的域field的值設為value。如果key不存在,一個新的哈希表被創建并進行HSET操作。如果域field已經存在于哈希表中,舊值將被覆蓋。
參數:key field value
返回值:如果field是哈希表中的一個新建域,并且值設置成功,返回1。如果哈希表中域field已經存在且舊值已被新值覆蓋,返回0。

2,hsetnx

描述:將哈希表key中的域field的值設置為value,當且僅當域field不存在。若域field已經存在,該操作無效。如果key不存在,一個新哈希表被創建并執行HSETNX命令。
參數:key field value
返回值:設置成功,返回1。如果給定域已經存在且沒有操作被執行,返回0。

3,hget

描述:返回哈希表key中給定域field的值。
參數:key field
返回值:給定域的值。當給定域不存在或是給定key不存在時,返回nil。

4,hmset

描述:同時將多個field - value(域-值)對設置到哈希表key中。此命令會覆蓋哈希表中已存在的域。如果key不存在,一個空哈希表被創建并執行HMSET操作。
參數:key field value [field value ...]
返回值:如果命令執行成功,返回OK。當key不是哈希表(hash)類型時,返回一個錯誤。

5,hmget

描述:返回哈希表key中,一個或多個給定域的值。如果給定的域不存在于哈希表,那么返回一個nil值。因為不存在的key被當作一個空哈希表來處理,所以對一個不存在的key進行HMGET操作將返回一個只帶有nil值的表。
參數:key field [field ...]
返回值:一個包含多個給定域的關聯值的表,表值的排列順序和給定域參數的請求順序一樣。

6,hgetall

描述:返回哈希表key中,所有的域和值。在返回值里,緊跟每個域名(field name)之后是域的值(value),所以返回值的長度是哈希表大小的兩倍。
參數:key
返回值:以列表形式返回哈希表的域和域的值。 若key不存在,返回空列表。

7,hdel

描述:刪除哈希表key中的一個或多個指定域,不存在的域將被忽略。
參數:key field [field ...]
返回值:被成功移除的域的數量,不包括被忽略的域。

8,hlen

描述:返回哈希表key中域的數量。
參數:key
返回值:哈希表中域的數量。當key不存在時,返回0。

9,hexists

描述:查看哈希表key中,給定域field是否存在。
參數:key field
返回值:如果哈希表含有給定域,返回1。如果哈希表不含有給定域,或key不存在,返回0。

10,hincrby

描述:為哈希表key中的域field的值加上增量increment。增量也可以為負數,相當于對給定域進行減法操作。
參數:key field increment
返回值:執行HINCRBY命令之后,哈希表key中域field的值。

11,hkeys

描述:返回哈希表key中的所有域。
參數:key
返回值:一個包含哈希表中所有域的表。當key不存在時,返回一個空表。

12,hvals

描述:返回哈希表key中的所有值。
參數:key
返回值:一個包含哈希表中所有值的表。當key不存在時,返回一個空表。

以上12個方法的代碼例子:

 

復制代碼代碼如下:

<?php  
$redis = new redis();  
$redis->connect('192.168.1.108', 6379);  
$redis->delete('test');  
$redis->hset('test', 'key1', 'hello');  
echo $redis->hget('test', 'key1');     //結果:hello  
  
echo "<br>";  
$redis->hSetNx('test', 'key1', 'world');  
echo $redis->hget('test', 'key1');   //結果:hello  
  
$redis->delete('test');  
$redis->hSetNx('test', 'key1', 'world');  
echo "<br>";  
echo $redis->hget('test', 'key1');   //結果:world  
  
echo $redis->hlen('test');   //結果:1  
var_dump($redis->hdel('test','key1'));  //結果:bool(true)   
  
$redis->delete('test');  
$redis->hSet('test', 'a', 'x');  
$redis->hSet('test', 'b', 'y');  
$redis->hSet('test', 'c', 'z');  
print_r($redis->hkeys('test'));  //結果:Array ( [0] => a [1] => b [2] => c )   
  
print_r($redis->hvals('test'));  //結果:Array ( [0] => x [1] => y [2] => z )   
  
print_r($redis->hgetall('test'));  //結果:Array ( [a] => x [b] => y [c] => z )   
  
var_dump($redis->hExists('test', 'a'));  //結果:bool(true)   
  
$redis->delete('test');  
echo $redis->hIncrBy('test', 'a', 3);    //結果:3  
echo $redis->hIncrBy('test', 'a', 1);    //結果:4  
  
$redis->delete('test');  
var_dump($redis->hmset('test', array('name' =>'tank', 'sex'=>"man"))); //結果:bool(true)  
print_r($redis->hmget('test', array('name', 'sex')));  //結果:Array ( [name] => tank [sex] => man )  
?>  

 

13,zadd

描述:
增加一個或多個元素,如果該元素已經存在,更新它的socre值
雖然有序集合有序,但它也是集合,不能重復元素,添加重復元素只會
更新原有元素的score值
參數:
key
score : double
value: string
返回值:1 or 0

14,zrange

描述:取得特定范圍內的排序元素,0代表第一個元素,1代表第二個以此類推。-1代表最后一個,-2代表倒數第二個...
參數:
key
start: long
end: long
withscores: bool = false
返回值:數組

15,zdelete, zrem

描述:從有序集合中刪除指定的成員。
參數:
key
member
返回值:1 or 0

16,zrevrange

描述:返回key對應的有序集合中指定區間的所有元素。這些元素按照score從高到低的順序進行排列。對于具有相同的score的元素而言,將會按照遞減的字典順序進行排列。該命令與ZRANGE類似,只是該命令中元素的排列順序與前者不同。
參數:
key
start: long
end: long
withscores: bool = false
返回值:數組

17,zrangebyscore, zrevrangebyscore

描述:返回key對應的有序集合中score介于min和max之間的所有元素(包哈score等于min或者max的元素)。元素按照score從低到高的順序排列。如果元素具有相同的score,那么會按照字典順序排列。
可選的選項LIMIT可以用來獲取一定范圍內的匹配元素。如果偏移值較大,有序集合需要在獲得將要返回的元素之前進行遍歷,因此會增加O(N)的時間復雜度。可選的選項WITHSCORES可以使得在返回元素的同時返回元素的score,該選項自從Redis 2.0版本后可用。
參數:
key
start: string
end: string
options: array
返回值:數組

18,zcount

描述:返回key對應的有序集合中介于min和max間的元素的個數。
參數:
key
start: string
end: string
返回值:數組長度

19,zremrangebyscore, zreleterangebyscore

描述:移除key對應的有序集合中scroe位于min和max(包含端點)之間的所喲元素。從2.1.6版本后開始,區間端點min和max可以被排除在外,這和ZRANGEBYSCORE的語法一樣。
參數:
key
start: double or "+inf" or "-inf" string
end: double or "+inf" or "-inf" string
返回值:刪除元素個數

20,zremrangebyrank, zdeleterangebyrank

描述:移除key對應的有序集合中rank值介于start和stop之間的所有元素。start和stop均是從0開始的,并且兩者均可以是負值。當索引值為負值時,表明偏移值從有序集合中score值最高的元素開始。例如:-1表示具有最高score的元素,而-2表示具有次高score的元素,以此類推。
參數:
key
start: LONG
end: LONG
返回值:刪除元素個數

21,zsize, zcard

描述:返回存儲在key對應的有序集合中的元素的個數。
參數:key
返回值:元素個數

22,zscore

描述:返回key對應的有序集合中member的score值。如果member在有序集合中不存在,那么將會返回null。
參數:key member

23,zrank, zrevrank

描述:返回key對應的有序集合中member元素的索引值,元素按照score從低到高進行排列。rank值(或index)是從0開始的,這意味著具有最低score值的元素的rank值為0。使用ZREVRANK可以獲得從高到低排列的元素的rank(或index)。
參數:key member
返回值:數字

24,zincrby

將key對應的有序集合中member元素的scroe加上increment。如果指定的member不存在,那么將會添加該元素,并且其score的初始值為increment。如果key不存在,那么將會創建一個新的有序列表,其中包含member這一唯一的元素。如果key對應的值不是有序列表,那么將會發生錯誤。指定的score的值應該是能夠轉換為數字值的字符串,并且接收雙精度浮點數。同時,你也可用提供一個負值,這樣將減少score的值。
參數:key value member
返回值:字符型數據

25,zunion

描述:keys對應的numkeys個有序集合計算合集,并將結果存儲在destination中
參數:keyOutput arrayZSetKeys arrayWeights aggregateFunction
返回值:并集數組

26,zinter

描述:keys對應的numkeys個有序集合計算交集,并將結果存儲在destination中
參數:keyOutput arrayZSetKeys arrayWeights aggregateFunction
返回值:交集數組


13-26的代碼例子:

復制代碼代碼如下:

$redis = new redis();  
$redis->connect('192.168.1.108', 6379);  
$redis->delete('test');  
$redis->zadd('test', 1, 'val1');  
$redis->zadd('test', 0, 'val2');  
$redis->zadd('test', 3, 'val3');  
  
print_r($redis->zrange('test', 0, -1)); //結果:Array ( [0] => val2 [1] => val1 [2] => val3 )  
  
$redis->zdelete('test', 'val2');  
print_r($redis->zrange('test', 0, -1)); //結果:Array ( [0] => val1 [1] => val3 )   
  
$redis->zadd('test',4, 'val0');  
print_r($redis->zrevrange('test', 0, -1));  //結果:Array ( [0] => val0 [1] => val3 [2] => val1 )  
print_r($redis->zrevrange('test', 0, -1,true));  //結果:Array ( [val0] => 4 [val3] => 3 [val1] => 1 )   
  
echo "<br>";  
$redis->zadd('key', 0, 'val0');  
$redis->zadd('key', 2, 'val2');  
$redis->zadd('key', 10, 'val10');  
  
print_r($redis->zrangebyscore('key', 0, 3, array('limit' => array(1, 1),'withscores' => TRUE))); //結果:Array ( [val2] => 2 )  
print_r($redis->zrangebyscore('key', 0, 3, array('limit' => array(1, 1)))); //結果:Array ( [0] => val2 )   
  
echo $redis->zcount('key', 0, 3); //結果:2  
  
$redis->zremrangebyscore('key', 0, 3);  
print_r($redis->zrange('key', 0, -1));  //結果:Array ( [0] => val10 )   
  
echo $redis->zsize('key');   //結果:1  
  
$redis->zadd('key', 2.5, 'aaaa');  
echo $redis->zscore('key', 'aaaa');   //結果:2.5  
  
echo $redis->zrank('key', 'aaaa');   //結果:0  
echo $redis->zrevrank('key', 'aaaa');    //結果:1  
  
$redis->delete('key');  
  
echo $redis->zincrby('key', 2, 'aaaa');  //結果:2  
echo $redis->zincrby('key', 1, 'aaaa');  //結果:3  
  
$redis->delete('key');  
$redis->delete('test');  
  
$redis->zadd('key', 0, 'val0');  
$redis->zadd('key', 1, 'val1');  
$redis->zadd('key', 4, 'val2');  
$redis->zadd('test', 2, 'val2');  
$redis->zadd('test', 3, 'val3');  
$redis->zunion('k01', array('key', 'test'));  
print_r($redis->zrange('k01',0, -1)); //結果:Array ( [0] => val0 [1] => val1 [2] => val3 [3] => val2 )  
  
$redis->zunion('k03', array('key', 'test'), array(5, 1));  
print_r($redis->zrange('k03',0, -1)); //結果:Array ( [0] => val0 [1] => val3 [2] => val1 [3] => val2 )  
  
$redis->zinter('k02', array('key', 'test'));  
print_r($redis->zrange('k02',0, -1)); //結果:Array ( [0] => val2 )  
?>  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲视频在线| 亚洲午夜av电影| 欧美亚洲另类激情另类| 久久久久免费视频| 欧美高清视频在线| 亚洲国产精品va在看黑人| 国产精品国产福利国产秒拍| 久久久人成影片一区二区三区| 国产成人精品电影| 久久久亚洲精品视频| 欧美激情精品久久久久| 亚洲色图在线观看| 在线午夜精品自拍| 日韩国产高清视频在线| 日韩日本欧美亚洲| 欧美日韩在线观看视频小说| 国产精品久久99久久| 日韩欧美中文字幕在线播放| 国产一区二区日韩精品欧美精品| 91av在线播放| 亚洲国产精品久久久| 亚洲国模精品一区| 亚洲国产精品久久精品怡红院| 国产精品欧美日韩一区二区| 日韩在线视频线视频免费网站| 国产91成人在在线播放| 国产精品视频永久免费播放| 久久亚洲国产精品| 久久精品国产2020观看福利| 亚洲欧美中文在线视频| 日韩欧美在线中文字幕| 久久中文字幕视频| 高清日韩电视剧大全免费播放在线观看| 国产一区二区在线播放| 91po在线观看91精品国产性色| 国产成+人+综合+亚洲欧洲| 久久久久日韩精品久久久男男| 亚洲精品乱码久久久久久金桔影视| 欧美高清一级大片| 九九热这里只有精品免费看| 欧美成人在线免费视频| 国产精品美女主播在线观看纯欲| 久久精品视频在线播放| 91青草视频久久| 国产精品va在线播放| 热久久视久久精品18亚洲精品| 欧美日韩性视频在线| 日韩中文字幕在线视频| 欧美午夜片在线免费观看| xxxxxxxxx欧美| 国产热re99久久6国产精品| 日韩激情视频在线| 国产亚洲一区精品| 欧美日韩国产一中文字不卡| 国产免费一区二区三区香蕉精| 国产91精品久久久久久| 91高潮精品免费porn| 18一19gay欧美视频网站| 亚洲第一精品夜夜躁人人爽| 欧美一级成年大片在线观看| 国产网站欧美日韩免费精品在线观看| 欧美日韩性视频在线| 亚洲视频在线观看免费| 亚洲国产一区二区三区在线观看| 久久国产精品99国产精| 国产成人精品国内自产拍免费看| 欧美午夜精品久久久久久人妖| 亚洲综合视频1区| 欧美视频在线免费看| 日韩专区中文字幕| 另类天堂视频在线观看| 亚洲欧美成人一区二区在线电影| 国产91在线高潮白浆在线观看| 国产欧美韩国高清| 国产精自产拍久久久久久蜜| 成人两性免费视频| 美女扒开尿口让男人操亚洲视频网站| 久久人人97超碰精品888| 日本欧美中文字幕| 国产精品久久久久福利| 亚洲免费av网址| 插插插亚洲综合网| 日韩成人网免费视频| 欧美成年人视频网站欧美| 自拍偷拍亚洲一区| 尤物99国产成人精品视频| 国产欧美va欧美va香蕉在| 国产精品三级美女白浆呻吟| 在线精品91av| 国产精品一区二区三| 国产精品日韩在线一区| 国产精品黄色影片导航在线观看| 亚洲天堂av高清| 欧美二区在线播放| 久久五月情影视| 欧美激情免费视频| 亚洲人a成www在线影院| 国产一区二区精品丝袜| 狠狠色香婷婷久久亚洲精品| 日韩精品高清在线观看| 国产一区二区色| 精品美女永久免费视频| 久久偷看各类女兵18女厕嘘嘘| 66m—66摸成人免费视频| 精品成人国产在线观看男人呻吟| 国产精品日韩一区| 青青在线视频一区二区三区| 久久久精品中文字幕| 在线日韩av观看| 亚洲高清久久网| 日韩视频中文字幕| 精品国产1区2区| 91精品视频观看| 91在线视频免费| 精品日本美女福利在线观看| 91视频国产一区| 中文字幕国产亚洲| 久久免费精品视频| 国产一区二区丝袜高跟鞋图片| 热门国产精品亚洲第一区在线| 最近2019年手机中文字幕| 欧美风情在线观看| 国产精品www色诱视频| 欧美精品激情视频| 成人福利网站在线观看| 日韩久久免费视频| 精品视频—区二区三区免费| 久久久av网站| 国产精品h在线观看| 国产91在线高潮白浆在线观看| 欧美日韩精品二区| 日本午夜在线亚洲.国产| 九九热精品视频在线播放| 成人网址在线观看| 97精品一区二区三区| 国产一区二区三区三区在线观看| 日本精品一区二区三区在线播放视频| 91久久久久久久| 青青草成人在线| 久久色免费在线视频| 亚洲欧美日韩在线高清直播| 精品亚洲国产视频| 日本精品久久电影| 欧美成人激情视频免费观看| 久久久久久久国产精品视频| 91国内精品久久| 疯狂蹂躏欧美一区二区精品| 国产精品久久久久久亚洲影视| 久久久久九九九九| 亚洲国产成人在线视频| 最近2019好看的中文字幕免费| 国产日韩在线看| 国产v综合ⅴ日韩v欧美大片| 91精品视频专区| 亚洲精品视频网上网址在线观看| 久久久精品国产网站| 人人爽久久涩噜噜噜网站| 亚洲欧美色图片| 欧美老肥婆性猛交视频| 国产精品久久久久久久app| 国产亚洲精品美女久久久| 日本视频久久久| 欧美一区二区三区艳史| 欧美日韩福利电影|