Redis_php 學習
轉載內容:
PhpRedis是php的一個擴充套件,效率是相當高有連結串列排序功能,對建立記憶體級的模組業務關係很有用;以下是redis官方提供的命令使用技巧:
Redis::__construct建構函式
1 |
$redis
= new Redis(); |
connect, open 連結redis服務
引數:
- host: string,服務地址
- port: int,埠號
- timeout: float,連結時長 (可選, 預設為 0 ,不限連結時間)
注: 在redis.conf中也有時間,預設為300
pconnect, popen 不會主動關閉的連結
參考同上
setOption 設定redis模式
getOption 檢視redis設定的模式
ping 檢視連線狀態
get 得到某個key的值(string值)
如果該key不存在,return false
set 寫入key 和 value(string值)
如果寫入成功,return ture
setex 帶生存時間的寫入值
1 |
$redis->setex( 'key' ,
3600, 'value' ); //
sets key → value, with 1h TTL. |
setnx 判斷是否重複的,寫入值
1 |
$redis->setnx( 'key' , 'value' ); |
2 |
$redis->setnx( 'key' , 'value' ); |
delete 刪除指定key的值
返回已經刪除key的個數(長整數)
1 |
$redis->delete( 'key1' , 'key2' ); |
2 |
$redis->delete(array( 'key3' , 'key4' , 'key5' )); |
ttl
得到一個key的生存時間
persist
移除生存時間到期的key
如果key到期 true 如果不到期 false
mset (redis版本1.1以上才可以用)
同時給多個key賦值
1 |
$redis->mset(array( 'key0' => 'value0' , 'key1' => 'value1' )); |
multi, exec, discard
進入或者退出事務模式
引數可選Redis::MULTI或Redis::PIPELINE. 預設是 Redis::MULTI
Redis::MULTI:將多個操作當成一個事務執行
Redis::PIPELINE:讓(多條)執行命令簡單的,更加快速的傳送給伺服器,但是沒有任何原子性的保證
discard:刪除一個事務
返回值
multi(),返回一個redis物件,並進入multi-mode模式,一旦進入multi-mode模式,以後呼叫的所有方法都會返回相同的物件,只到exec()方法被呼叫。
watch, unwatch (程式碼測試後,不能達到所說的效果)
監測一個key的值是否被其它的程式更改。如果這個key在watch 和 exec (方法)間被修改,這個 MULTI/EXEC 事務的執行將失敗(return false)
unwatch 取消被這個程式監測的所有key
引數,一對key的列表
1 |
$redis->watch( 'x' ); |
2 |
$ret
= $redis->multi() ->incr( 'x' )
->exec(); |
subscribe *
方法回撥。注意,該方法可能在未來裡發生改變
publish *
發表內容到某一個通道。注意,該方法可能在未來裡發生改變
exists
判斷key是否存在。存在 true 不在 false
incr, incrBy
key中的值進行自增1,如果填寫了第二個引數,者自增第二個引數所填的值
1 |
$redis->incr( 'key1' ); |
2 |
$redis->incrBy( 'key1' ,
10); |
decr, decrBy
做減法,使用方法同incr
getMultiple
傳參
由key組成的陣列
返回引數
如果key存在返回value,不存在返回false
1 |
$redis-> set ( 'key1' , 'value1' ); |
2 |
$redis-> set ( 'key2' , 'value2' ); |
3 |
$redis-> set ( 'key3' , 'value3' ); |
4 |
$redis->getMultiple(array( 'key1' , 'key2' , 'key3' )); |
5 |
$redis->lRem( 'key1' , 'A' ,
2); |
6 |
$redis->lRange( 'key1' ,
0, -1); |
List相關操作
lPush
1 |
$redis->lPush(key,
value); |
在名稱為key的list左邊(頭)新增一個值為value的元素
rPush
1 |
$redis->rPush(key,
value); |
在名稱為key的list右邊(尾)新增一個值為value的元素
lPushx/rPushx
1 |
$redis->lPushx(key,
value); |
在名稱為key的list左邊(頭)/右邊(尾)新增一個值為value的元素,如果value已經存在,則不新增
lPop/rPop
1 |
$redis->lPop( 'key' ); |
輸出名稱為key的list左(頭)起/右(尾)起的第一個元素,刪除該元素
blPop/brPop
1 |
$redis->blPop( 'key1' , 'key2' ,
10); |
lpop命令的block版本。即當timeout為0時,若遇到名稱為key i的list不存在或該list為空,則命令結束。如果timeout>0,則遇到上述情況時,等待timeout秒,如果問題沒有解決,則對keyi+1開始的list執行pop操作
lSize
1 |
$redis->lSize( 'key' ); |
返回名稱為key的list有多少個元素
lIndex, lGet
1 |
$redis->lGet( 'key' ,
0); |
返回名稱為key的list中index位置的元素
lSet
1 |
$redis->lSet( 'key' ,
0, 'X' ); |
給名稱為key的list中index位置的元素賦值為value
lRange, lGetRange
1 |
$redis->lRange( 'key1' ,
0, -1); |
返回名稱為key的list中start至end之間的元素(end為 -1 ,返回所有)
lTrim, listTrim
1 |
$redis->lTrim( 'key' ,
start, end); |
擷取名稱為key的list,保留start至end之間的元素
lRem, lRemove
1 |
$redis->lRem( 'key' , 'A' ,
2); |
刪除count個名稱為key的list中值為value的元素。count為0,刪除所有值為value的元素,count>0從頭至尾刪除count個值為value的元素,count<0從尾到頭刪除|count|個值為value的元素
lInsert
在名稱為為key的list中,找到值為pivot 的value,並根據引數Redis::BEFORE | Redis::AFTER,來確定,newvalue 是放在 pivot 的前面,或者後面。如果key不存在,不會插入,如果 pivot不存在,return -1
01 |
$redis->delete( 'key1' ); |
02 |
$redis->lInsert( 'key1' ,
Redis::AFTER, 'A' , 'X' ); |
03 |
$redis->lPush( 'key1' , 'A' ); |
04 |
$redis->lPush( 'key1' , 'B' ); |
05 |
$redis->lPush( 'key1' , 'C' ); |
06 |
$redis->lInsert( 'key1' ,
Redis::BEFORE, 'C' , 'X' ); |
07 |
$redis->lRange( 'key1' ,
0, -1); |
08 |
$redis->lInsert( 'key1' ,
Redis::AFTER, 'C' , 'Y' ); |
09 |
$redis->lRange( 'key1' ,
0, -1); |
10 |
$redis->lInsert( 'key1' ,
Redis::AFTER, 'W' , 'value' ); |
rpop/lpush
01 |
$redis->delete( 'x' , 'y' ); |
02 |
$redis->lPush( 'x' , 'abc' ); |
03 |
$redis->lPush( 'x' , 'def' ); |
04 |
$redis->lPush( 'y' , '123' ); |
05 |
$redis->lPush( 'y' , '456' ); //
move the last of x to the front of y. var_dump($redis->rpoplpush('x', 'y')); |
06 |
var_dump($redis->lRange( 'x' ,
0, -1)); |
07 |
var_dump($redis->lRange( 'y' ,
0, -1)); |
08 |
array |
09 |
0
=> string 'def' (length=3) |
10 |
1
=> string 'abc' (length=3) |
11 |
12 |
array |
13 |
0
=> string '456' (length=3) |
14 |
1
=> string '123' (length=3) |
返回並刪除名稱為srckey的list的尾元素,並將該元素新增到名稱為dstkey的list的頭部
SET相關操作
sAdd
1 |
$redis->sAdd(key
, value); |
向名稱為key的set中新增元素value,如果value存在,不寫入,return false
sRem, sRemove
1 |
$redis->sAdd( 'key1' , 'set1' ); |
2 |
$redis->sAdd( 'key1' , 'set2' ); |
3 |
$redis->sAdd( 'key1' , 'set3' ); |
4 |
$redis->sRem( 'key1' , 'set2' ); |
刪除名稱為key的set中的元素value
sMove
1 |
$redis->sMove(seckey,
dstkey, value); |
將value元素從名稱為srckey的集合移到名稱為dstkey的集合
sIsMember, sContains
1 |
$redis->sIsMember(key,
value); |
名稱為key的集合中查詢是否有value元素,有ture 沒有false
sCard, sSize
1 |
$redis->sIsMember(key,
value); |
返回名稱為key的set的元素個數
sPop
隨機返回並刪除名稱為key的set中一個元素
sRandMember
隨機返回名稱為key的set中一個元素,不刪除
sInter
求交集
sInterStore
1 |
$redis->sInterStore( 'output' , 'key1' , 'key2' , 'key3' ) |
求交集並將交集儲存到output的集合
sUnion
1 |
$redis->sUnion( 's0' , 's1' , 's2' ); |
2 |
//s0,s1,s2
同時求並集 |
求並集
sUnionStore
1 |
$redis->sUnionStore( 'output' , 'key1' , 'key2' , 'key3' ); |
求並集並將並集儲存到output的集合
sDiff
求差集
sDiffStore
求差集並將差集儲存到output的集合
sMembers, sGetMembers
返回名稱為key的set的所有元素
sort
排序,分頁等
引數
- 'by' => 'some_pattern_*'
- 'limit' => array(0, 1)
- 'get' => 'some_other_pattern_*' or an array of patterns
- 'sort' => 'asc' or 'desc'
- 'alpha' => TRUE
- 'store' => 'external-key'
1 |
$redis->delete( 's' ); |
2 |
$redis->sadd( 's' ,
5); |
3 |
$redis->sadd( 's' ,
4); |
4 |
$redis->sadd( 's' ,
2); |
5 |
$redis->sadd( 's' ,
1); |
6 |
$redis->sadd( 's' ,
3); |
7 |
var_dump($redis->sort( 's' )); //
1,2,3,4,5 |
8 |
var_dump($redis->sort( 's' ,
array( 'sort' => 'desc' ))); //
5,4,3,2,1 |
9 |
var_dump($redis->sort( 's' ,
array( 'sort' => 'desc' , 'store' => 'out' ))); //
(int)5 |
string相關操作
getSet
1 |
$redis-> set ( 'x' , '42' ); |
2 |
$exValue
= $redis->getSet( 'x' , 'lol' ); //
return '42', replaces x by 'lol' |
3 |
$newValue
= $redis-> get ( 'x' ) '
// return ' lol' |
返回原來key中的值,並將value寫入key
append
1 |
$redis-> set ( 'key' , 'value1' ); |
2 |
$redis->append( 'key' , 'value2' ); |
3 |
$redis-> get ( 'key' ); |
string,名稱為key的string的值在後面加上value
getRange (方法不存在)
1 |
$redis-> set ( 'key' , 'string
value' ); |
2 |
$redis->getRange( 'key' ,
0, 5); |
3 |
$redis->getRange( 'key' ,
-5, -1); |
返回名稱為key的string中start至end之間的字元
setRange (方法不存在)
1 |
$redis-> set ( 'key' , 'Hello
world' ); |
2 |
$redis->setRange( 'key' ,
6, "redis" ); |
3 |
$redis-> get ( 'key' ); |
改變key的string中start至end之間的字元為value
strlen
1 |
$redis->strlen( 'key' ); |
得到key的string的長度
getBit/setBit
返回2進位制資訊
zset(sorted set)相關操作
zAdd(key, score, member)
1 |
$redis->zAdd( 'key' ,
1, 'val1' ); |
2 |
$redis->zAdd( 'key' ,
0, 'val0' ); |
3 |
$redis->zAdd( 'key' ,
5, 'val5' ); |
4 |
$redis->zRange( 'key' ,
0, -1); //
array(val0, val1, val5) |
向名稱為key的zset中新增元素member,score用於排序。如果該元素已經存在,則根據score更新該元素的順序。
zRange(key, start, end,withscores)
1 |
$redis->zAdd( 'key1' ,
0, 'val0' ); |
2 |
$redis->zAdd( 'key1' ,
2, 'val2' ); |
3 |
$redis->zAdd( 'key1' ,
10, 'val10' ); |
4 |
$redis->zRange( 'key1' ,
0, -1); //
with scores $redis->zRange('key1', 0, -1, true); |
返回名稱為key的zset(元素已按score從小到大排序)中的index從start到end的所有元素
zDelete,zRem(key, member)
1 |
$redis->zAdd( 'key' ,
0, 'val0' ); |
2 |
$redis->zAdd( 'key' ,
2, 'val2' ); |
3 |
$redis->zAdd( 'key' ,
10, 'val10' ); |
4 |
$redis->zDelete( 'key' , 'val2' ); |
5 |
$redis->zRange( 'key' ,
0, -1); |
刪除名稱為key的zset中的元素member
zRevRange(key, start, end,withscores)
1 |
$redis->zAdd( 'key' ,
0, 'val0' ); |
2 |
$redis->zAdd( 'key' ,
2, 'val2' ); |
3 |
$redis->zAdd( 'key' ,
10, 'val10' ); |
4 |
$redis->zRevRange( 'key' ,
0, -1); //
with scores $redis->zRevRange('key', 0, -1, true); |
返回名稱為key的zset(元素已按score從大到小排序)中的index從start到end的所有元素.withscores: 是否輸出socre的值,預設false,不輸出
zRangeByScore, zRevRangeByScore
1 |
$redis->zRangeByScore(key,
star, end, array(withscores, limit )); |
返回名稱為key的zset中score >= star且score <= end的所有元素
zCount
1 |
$redis->zCount(key,
star, end); |
返回名稱為key的zset中score >= star且score <= end的所有元素的個數
zRemRangeByScore, zDeleteRangeByScore
1 |
$redis->zRemRangeByScore( 'key' ,
star, end); |
刪除名稱為key的zset中score >= star且score <= end的所有元素,返回刪除個數
zSize, zCard
返回名稱為key的zset的所有元素的個數
zScore
1 |
$redis->zScore(key,
val2); |
返回名稱為key的zset中元素val2的score
zRank, zRevRank
1 |
$redis->zRevRank(key,
val); |
返回名稱為key的zset(元素已按score從小到大排序)中val元素的rank(即index,從0開始),若沒有val元素,返回“null”。zRevRank 是從大到小排序
zIncrBy
1 |
$redis->zIncrBy( 'key' ,
increment, 'member' ); |
如果在名稱為key的zset中已經存在元素member,則該元素的score增加increment;否則向集合中新增該元素,其score的值為increment
zUnion/zInter
引數
- keyOutput
- arrayZSetKeys
- arrayWeights
- aggregateFunction Either "SUM", "MIN", or "MAX": defines the behaviour to use on duplicate entries during the zUnion.
對N個zset求並集和交集,並將最後的集合儲存在dstkeyN中。對於集合中每一個元素的score,在進行AGGREGATE運算前,都要乘以對於的WEIGHT引數。如果沒有提供WEIGHT,預設為1。預設的AGGREGATE是SUM,即結果集合中元素的score是所有集合對應元素進行SUM運算的值,而MIN和MAX是指,結果集合中元素的score是所有集合對應元素中最小值和最大值。
Hash相關操作
hSet
1 |
$redis->hSet( 'h' , 'key1' , 'hello' ); |
向名稱為h的hash中新增元素key1—>hello
hGet
1 |
$redis->hGet( 'h' , 'key1' ); |
返回名稱為h的hash中key1對應的value(hello)
hLen
1 |
$redis->hLen( 'h' ); |
返回名稱為h的hash中元素個數
hDel
1 |
$redis->hDel( 'h' , 'key1' ); |
刪除名稱為h的hash中鍵為key1的域
hKeys
1 |
$redis->hKeys( 'h' ); |
返回名稱為key的hash中所有鍵
hVals
1 |
$redis->hVals( 'h' ) |
返回名稱為h的hash中所有鍵對應的value
hGetAll
1 |
$redis->hGetAll( 'h' ); |
返回名稱為h的hash中所有的鍵(field)及其對應的value
hExists
1 |
$redis->hExists( 'h' , 'a' ); |
名稱為h的hash中是否存在鍵名字為a的域
hIncrBy
1 |
$redis->hIncrBy( 'h' , 'x' ,
2); |
將名稱為h的hash中x的value增加2
hMset
1 |
$redis->hMset( 'user:1' ,
array( 'name' => 'Joe' , 'salary' =>
2000)); |
向名稱為key的hash中批量新增元素
hMGet
1 |
$redis->hmGet( 'h' ,
array( 'field1' , 'field2' )); |
返回名稱為h的hash中field1,field2對應的value
redis 相關操作
flushDB
清空當前資料庫
flushAll
清空所有資料庫
randomKey
1 |
$key
= $redis->randomKey(); |
隨機返回key空間的一個key
select
選擇一個資料庫
move
1 |
$redis->select(0); //
switch to DB 0 |
2 |
$redis-> set ( 'x' , '42' ); //
write 42 to x |
3 |
$redis->move( 'x' ,
1); //
move to DB 1 |
4 |
$redis->select(1); //
switch to DB 1 |
5 |
$redis-> get ( 'x' ); //
will return 42 |
轉移一個key到另外一個資料庫
rename, renameKey
1 |
$redis-> set ( 'x' , '42' ); |
2 |
$redis->rename( 'x' , 'y' ); |
3 |
$redis-> get ( 'y' ); //
→ 42 |
4 |
$redis-> get ( 'x' ); //
→ `FALSE` |
給key重新命名
renameNx
與remane類似,但是,如果重新命名的名字已經存在,不會替換成功
setTimeout, expire
1 |
$redis->setTimeout( 'x' ,
3); |
設定一個key的活動時間(s)
expireAt
1 |
$redis->expireAt( 'x' ,
time() + 3); |
key存活到一個unix時間戳時間
keys, getKeys
1 |
$keyWithUserPrefix
= $redis->keys( 'user*' ); |
返回滿足給定pattern的所有key
dbSize
1 |
$count
= $redis->dbSize(); |
檢視現在資料庫有多少key
auth
1 |
$redis->auth( 'foobared' ); |
密碼認證
bgrewriteaof
1 |
$redis->bgrewriteaof(); |
使用aof來進行資料庫持久化
slaveof
1 |
$redis->slaveof( '10.0.1.7' ,
6379); |
選擇從伺服器
save
將資料同步儲存到磁碟
bgsave
將資料非同步儲存到磁碟
lastSave
返回上次成功將資料儲存到磁碟的Unix時戳
info
返回redis的版本資訊等詳情
type
返回key的型別值
string: Redis::REDIS_STRING
set: Redis::REDIS_SET
list: Redis::REDIS_LIST
zset: Redis::REDIS_ZSET
hash: Redis::REDIS_HASH
other: Redis::REDIS_NOT_FOUND
練習內容:
$redis =
new Redis(); //var_dump($redis); $redis ->connect( '127.0.0.1' ,6379); //$redis->set('test',
"hello world!"); //echo
$redis->get("test"); /////////////////////////////////////////////////////////// //setex帶生存時間的寫入值 //$redis->setex("test",60,"value"); //echo
$redis->get("test"); //測試成功,過60秒生存期,值失效 //setnx判斷是否重複的,寫入值 /*$redis->delete('test'); $_return
= $redis->setnx('test','value'); var_dump($_return); echo
"<BR><BR>"; $return
= $redis->setnx('test','value'); var_dump($return);*/ //delete
刪除指定key的值 //返回已經刪除key的個數(長整數) /*$redis->set('test','value1'); $redis->set('test1','value2'); $return
= $redis->delete(array("test","test1")); //返回被刪除數值的數量 var_dump($return);*/ //ttl
得到一個key的生存時間 //$redis->setex("key1",
300, "val1"); //$ttl
= $redis->ttl('key1'); //echo
$ttl; //persist //移除生存時間到期的key //如果key到期true如果不到期false //$_result
= $redis->persist("key1"); //var_dump($_result); //mset(1.1以上可以用) //同時給多個key賦值 /*$_result
= $redis->mset(array('key1'=>'value1', 'key2'=>'value2')); var_dump($_result); $key1
= $redis->get('key1'); echo
$key1;*/ //exists //判斷key是否存在,存在true不存在false //$_result
= $redis->exists('key1'); //var_dump($_result); //incr,
incrBy //key中的值進行自增1,
如果值寫的了第二個引數,自增第二個引數值的值 /*$redis->set('key3',
10); $key3
= $redis->get('key3'); echo
"key=={$key3}<BR>"; $redis->incr('key3'); $key3
= $redis->get('key3'); echo
"key=={$key3}<BR>"; $redis->incr('key3',
10); $key3
= $redis->get('key3'); echo
"key=={$key3}<BR>";*/ //decr,
decrBy 做感法,使用方法同incr //getMultiple //傳參
由key組成的陣列 //返回引數
如果key存在返回value, 不存在返回false /*$redis->set('key1','value1'); $redis->set('key2','value2'); $redis->set('key3','value3'); $result
= $redis->getMultiple(array('key1','key2','key4')); var_dump($result); $result
= $redis->lRem('key1','A',2); //這句不知道是什麼意思 $result
= $redis->get('key1'); var_dump($result);*/ //List相關操作 //lPush
在名稱為key的list左邊(頭)新增一個值為value的元素 //$redis->delete('key1'); //$result
= $redis->lPush('key1','value0'); //var_dump($result); //rPush
的名稱為key的list右邊(尾)新增一個值為value的元素 //$result
= $redis->rPush('key1','value1'); //var_dump($result); //lPushx/rPushx
在名稱為key的list左邊(頭)/右邊(尾)新增一個值為value的元素 //如果value已經存在,則不新增 //$result
= $redis->lPushx('key1','value1'); //好像不起作用 //var_dump($result); //lPop/rPop
輸出名稱為key的list左/右起的第一個元素,刪除該元素 //$val
= $redis->lPop('key1'); //echo
$val; //blPop/brPop //lpop命令的block版本,即當timeout為0時,若遇到名稱為key
i的list不存在或該list為空,則命令結束, //如果timeout>0,則遇到上述情況時,等持timeout秒,如果問題沒有解決,則對key+1開始的list執行pop操作 //沒有測試 //lSize
返回名稱為key的list有多少個元素 //$size
= $redis->lSize('key1'); //echo
"<BR>size:".$size."<BR>"; //lIndex,
lGet 返回名稱為key的list中的index位置元素 //$redis->lPush('key1','value100'); //$val
= $redis->lGet('key1',3); //echo
$val; //lSet
給名稱為key的list中index位置的元素賦值為value //$redis->lSet('key1',0,'valuenew'); //echo
$val = $redis->lIndex('key1',0); //lRange,
lGetRange 返回名稱為key的list中start到end之間的元素(end 為-1, 返回所有) //$list
= $redis->lRange('key1',0, -1); //var_dump($list); //lTrim/
listTrim 擷取名稱為key的list, 保留start到end之間的元素 //$list
= $redis->lTrim('key1',0,3); //這裡的擷取是直接刪除的意思 //var_dump($list); //lRem,
lRemove //刪除count個名稱為key的list中值為value元素,count為0,刪除所有值為value的元素,count<0從頭到尾刪除count個值為value的元素 //count<0從尾到頭刪除count個值為value的元素 //$_result
= $redis->lRem('key1','value100',1); //var_dump($_result); //lInsert
在名稱為key的list中,找到值為pivot和value, 並根據引數Redis::BEFORE | Redis::AFTER, //來確定,newvalue是放在pivot的前面,或者後面,如果key不存在,不會插入,如果piovt不存在
return -1 //$result
= $redis->lInsert('key1',Redis::AFTER, 'value100', 'X'); //$result
= $redis->lInsert('key1',Redis::BEFORE, 'value1','value_new'); //var_dump($result); //rpop/lpush
返回並刪除名稱為scrkey的list的尾元素,並將該元素新增到名稱為dstkey的list的頭部 /*$redis->delete('x'); $redis->delete('y'); $redis->lPush('x','abc'); $redis->lPush('x','def'); $redis->lPush('y',
'123'); $redis->lPush('y',
'456');*/ /*$return
= $redis->rpoplpush('x','y'); var_dump($return); $list
= $redis->lRange('x',0, -1); var_dump($list); echo
"<BR>"; $list
= $redis->lRange('y',0, -1); var_dump($list); echo
"<BR>";*/ /*$list
= $redis->lRange('key1',0, -1); var_dump($list); echo
"<BR><BR>"; $size
= $redis->lSize('key1'); echo
"<BR>size:".$size."<BR>"; */ //SET相關操作 //sAdd
向名稱為key的set中新增元素value,如果value存在,不寫入 return false //$return
= $redis->sAdd('key10','value10'); //var_dump($return); //sRem,
sRemove 刪除名稱為key的set中的元素value //$redis->sAdd('key10','value10'); //$redis->sAdd('key10','value11'); //$redis->sAdd('key10','value12'); //$redis->sRem('key10','value10'); //sMove
將value元素從名稱為srckey的集合移到名稱為dstkey的集合 //$redis->sMove(seckey,
dstkey, value) //sIsMember,
sContains 名稱為key的集合中查詢是否有value元素,有true沒有false //$redis->sIsMember(key,
value); //sCard,
sSize 返回名稱為key的set的元素個數 //$redis->sIsMember(key,
value); //$result
= $redis->sPop('key10'); //var_dump($result); //sRandMember
隨機返回名稱為key的set中一個元素,不刪除 /////////////////////////////////////////////// //sInter
求交集 //sInterStore
求交集並將交集儲存到output的集合 //也就是求出兩個set中相同的value值的資訊 /*$redis->sAdd('key10','value10'); $redis->sAdd('key10','value11'); $redis->sAdd('key11',
'value10'); $redis->sAdd('key11',
'value11'); $result
= $redis->sInterStore('output','key10','key11'); var_dump($result);*/ //sUnion
求並集 //$redis->sUnion('s0',
's1', 's2'); //應該是key和value值一樣的 //sUnionStore
求並集並將並集儲存到output的集合 //$redis->sUnionStore('output',
'key1','key2'); //sDiff
求差集並將差集儲存到output的集合 //sMembers,
sGetMembers //返回名稱為key的set所所有值 //sort
排序, 分頁等 /* 'by'
=> 'some_pattern_*' 'limit'
=> array(0, 1) 'get'
=> 'some_other_pattern_*' or an array of patterns 'sort'
=> 'asc' or 'desc' 'alpha'
=> TRUE 'store'
=> 'external-key' */ /*$redis->delete('s'); $redis->sadd('s',5); $redis->sadd('s',4); $redis->sadd('s',3); $redis->sadd('s',2); $redis->sadd('s',1); var_dump($redis->sort('s')); echo
"<BR>"; var_dump($redis->sort('s',
array('sort'=>'desc'))); echo
"<BR>"; var_dump($redis->sort('s',
array('sort'=>'desc', 'store'=>'out'))); */ //String相關操作 //getset
返回原來key中的值,並將value寫入到key中 /*$redis->set('x',
'42'); $exValue
= $redis->getSet('x', 'l0l'); $newVlaue
= $redis->get('x'); echo
$newVlaue."<BR><BR>";*/ //append
string, 名稱為key的string的值在後面加上value /*$redis->set('key','value1'); $redis->append('key','value2'); $value
= $redis->get('key'); echo
$value;*/ //getRange()
返回名稱為key的string中start到end之間的字串 //$val
= $redis->getRange('key', 2, 5); //echo
$val; //setRange()
改變key的string中start到end之間的字元為value //$redis->set('key',
'Hello world'); //$redis->setRange('key',
6, 'reids'); //6是指最後6個值 //$val
= $redis->get('key'); //echo
$val; //strlen
得到key的string的長度 //$len
= $redis->strlen('key'); //echo
$len; //getBit
/ setBit 返回二進位制資訊 //$bit
= $redis->getBit('key'); //無此方法 //echo
$bit; //zset(sorted
set)相關操作 //zAdd(kye
score, member); 向名稱為key的zset中新增元素member, //score用於排序,如果該元素已經存在,則根據score更新該元素的順序 /*$redis->delete('key'); $redis->zAdd('key',1,'val1'); $redis->zAdd('key',0,'val0'); $redis->zAdd('key',5,'val5'); $list
= $redis->zRange('key',0, -1); var_dump($list);*/ //zRange(key,
start, end, withscores) //返回名稱為key的zset(元素已按score從小到大排序)中的index從start到end的所有元素 //zDelete,
zRem(key, member) //刪除名稱為key的zset中的元素member //sPop
隨機返回並刪除名稱為key的set中一個元素 //$list
= $redis->sSize('output'); //var_dump($list); |
相關文章
- 學習學習再學習
- 深度學習——學習目錄——學習中……深度學習
- 深度學習(一)深度學習學習資料深度學習
- 深度學習學習框架深度學習框架
- 強化學習-學習筆記3 | 策略學習強化學習筆記
- 學習產品快報09 | “CSDN學習”:增加學習提醒,提示學習不忘記
- 【強化學習】強化學習/增強學習/再勵學習介紹強化學習
- 學習ThinkPHP,學習OneThinkPHP
- 前端學習之Bootstrap學習前端boot
- 學而習之,成就學習
- 前端週刊第62期:學習學習再學習前端
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- Golang 學習——interface 介面學習(一)Golang
- Golang 學習——interface 介面學習(二)Golang
- 深度學習學習7步驟深度學習
- 《JAVA學習指南》學習筆記Java筆記
- Go學習【二】學習資料Go
- java學習之道 --- 如何學習java?Java
- 免殺學習-基礎學習
- 強化學習10——迭代學習強化學習
- 程式設計學習MarkDown學習程式設計
- this學習
- 學習
- 【區塊鏈學習】《區塊鏈學習指南》學習筆記區塊鏈筆記
- Flutter學習記錄(一)Dart學習FlutterDart
- 從學習語文聊聊如何學習
- kitten 學習教程(一) 學習筆記筆記
- 整合學習(一):簡述整合學習
- 學習態度和學習計劃
- 學習筆記----圖論學習中筆記圖論
- 酷學習:學習可以很酷很好玩
- 強化學習-學習筆記13 | 多智慧體強化學習強化學習筆記智慧體
- 學習程式設計 vs 學習電腦科學程式設計
- 駁 《駁 《駁 《駁 《停止學習框架》》》》、《駁 《駁 《停止學習框架》》》、《駁 《停止學習框架》》、《停止學習框架》框架
- 學習筆記【深度學習2】:AI、機器學習、表示學習、深度學習,第一次大衰退筆記深度學習AI機器學習
- 學習英語,首先還是要有學習的習慣
- spark RDD的學習,filter函式的學習,split函式的學習SparkFilter函式