確認服務器已開啟redis服務
redis的端口號默認是6379
一個小例子代碼
<?php
header("content-type:text/html;charset=utf8");
//聲明redis對象實例
$redis = new Redis();
//調用redis對象的connect方法,第一個參數為redis的服務器地址,第2個為redis端口,默認為6379
$redis->connect("localhost",6379);
//如果redis開啟了安全認證,那么我們需要使用redis中的auth方法去通過安全認證密碼
$redis->auth("123456");
// $redis->set("liang","苟利國家生死以");
// 存儲哈希表,數組會成為哈希表的field,value
// $redis->hmset("stars:jay",array("name"=>'周傑倫','age'=>33,'lover'=>"藍球"));
// 獲取哈希表的值
// $data=$redis->hgetall("stars:jay");
//使用sadd方法添加一個名為lessons的無序集合
// $redis->sadd("lessons","php"); //第一個參數是集合名稱,第二個參數是集合的元素
// $redis->sadd("lessons","java");
// 使用smembers方法獲取一個無序集合中的所有元素
// $data=$redis->smembers("lessons");
//
// 使用zadd方法添加一個名為girls的有序集合
// $redis->zadd("girls",1,"宇賢"); //集合的名稱,排序,值
// $redis->zadd("girls",4,"斯");
// $redis->zadd("girls",2,"ab");
// $data=$redis->zrange("girls",0,-1); //升序獲取集合的數據
// $data1=$redis->zrevrange("girls",0,-1); //降序獲取集合的數據
//消息隊列
//exists為判斷此鍵名是否存在
if($redis->exists('lst')){
//lpop為彈出
if($str=$redis->lpop('lst')){
echo $str;
}else{
echo "沒有電影播放了";
}
die;
}
$movies = array(
"17:00開始正在播放電影<葉問3>",
"20:00開始正在播放電影<葉問4>",
"22:00開始正在播放電影<葉問5>",
);
foreach ($movies as $movie) {
//rpush為以隊列形式壓入list
$redis -> rpush("lst",$movie);
}
- //連接本地的 Redis 服務
- $redis = new Redis();
- $redis->connect('127.0.0.1', 6379);
- $redis->auth('123456');
-
- /*********************Key(鍵)*********************/
- //DEL key [key ...]------刪除給定的一個或多個key
- $a = $redis->del(array('xrj','ly','fjf'));
- //KEYS pattern------查找所有符合給定模式pattern的key
- $b = $redis->keys('*');
- //RANDOMKEY------從當前數據庫中隨機返回(不刪除)一個key
- $c = $redis->randomkey();
- //TTL key------以秒為單位,返回給定key的剩余生存時間(TTL, time to live)
- //PTTL key------以毫秒為單位,返回給定key的剩余生存時間
- $d = $redis->ttl('bbs');
- //EXISTS key------檢查給定key是否存在,存在,返回1,否則返回0
- $e = $redis->exists('email');
- //MOVE key db------將當前數據庫的key移動到給定的數據庫db當中
- $f = $redis->move('email',1);
- $redis->select(1);
- $f = $redis->keys('*');
- $f = $redis->move('email',0);
- //RENAME key newkey------將key改名為newkey
- $g = $redis->rename('email','e-eamil.com');
- $g = $redis->rename('e-eamil.com','eamil');
- //RENAMENX key newkey------當且僅當newkey不存在時,將key改名為newkey
- $h = $redis->renamenx('bbs','bbs1');
- //TYPE key------返回key所儲存的值的類型
- $i = $redis->type('pageview');
- //EXPIRE key seconds------給key設置生存時間,當key過期時,它會被自動刪除
- //PEXPIRE key milliseconds------以毫秒為單位設置key的生存時間
- //EXPIREAT key timestamp------命令接受的時間參數是UNIX時間戳,key存活到一個unix時間戳時間
- //PERSIST key------移除給定key的生存時間,轉換成一個不帶生存時間,永不過期的key
- //SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]------返回或保存給定列表、集合、有序集合key中經過排序的元素
-
- /****************String(字符串)相關操作***************/
- //SET key value------將字符串值value關聯到key,會覆蓋
- $a = $redis->set('email','jiang@58haha.cn');
- //SETNX key value------將key的值設為value,當且僅當key不存在的時候,成功返回1,不成功返回0
- $b = $redis->setnx('email','jiang@58haha.cn');
- //SETEX key seconds value------將值value關聯到key,並將key的生存時間設為seconds(以秒為單位)
- $c = $redis->setex('name',10086,'江');
- //PSETEX key milliseconds value------命令和SETEX命令相似,它以毫秒為單位設置key的生存時間
- $d = $redis->psetex('jiang',90000,'哈哈哈');
- //MSET key value [key value ...]------同時設置一個或多個key-value對
- $e = $redis->mset(array('ly' => 'liyang', 'fjf' => 'fengjingfeng'));
- //MSETNX key value [key value ...]------同時設置一個或多個key-value對,當且僅當所給定key都不存在
- $f = $redis->msetnx(array('ly' => 'liyang', 'xrj'=>'xingrongjiang', 'fjf' => 'fengjingfeng'));
- //APPEND key value------如果key已經存在並且是一個字符串,APPEND命令將value追加到key原來的值的末尾。如果key不存在,APPEND就像執行SET key value一樣
- $g = $redis->append('ly','love');
- //GET key------返回key所關聯的字符串值,如果key不存在那么返回特殊值nil,GET只能用於處理字符串值
- $h = $redis->get('ly');
- //MGET key [key ...]------返回所有(一個或多個)給定key的值,如果給定的key里面有某個key不存在,那么這個key返回特殊值nil,命令永不失敗
- $i = $redis->mget(array('email','ly','fjf'));
- //GETRANGE key start end------返回key中字符串值的子字符串,字符串的截取范圍由start和end兩個偏移量決定(包括start和end在內),負數偏移量表示從字符串最后開始計數,-1表示最后一個字符,-2表示倒數第二個
- $j = $redis->getrange('email',0,-1); //從第一個到最后一個,相當於直接get
- //GETSET key value------將給定key的值設為value,並返回key的舊值(old value)
- $k = $redis->getset('email','jiangzunshao@163.com');
- //STRLEN key------返回key所儲存的字符串值的長度
- $l = $redis->strlen('email');
- //DECR key------將key中儲存的數字值減一,如果key不存在,那么key的值會先被初始化為0,然后再執行DECR操作
- $m = $redis->decr('pageview');
- //INCR key------將key中儲存的數字值增一,如果key不存在,那么key的值會先被初始化為0,然后再執行INCR操作
- $n = $redis->incr('pageview1');
- //DECRBY key decrement------將key所儲存的值減去減量decrement(可以為負值)
- $o = $redis->decrby('pageview',3);
- //INCRBY key increment------將key所儲存的值加上增量increment(可以為負值)
- $p = $redis->incrby('pageview',6);
-
- /****************Hash(哈希表)相關操作***************/
- //HSET key field value------將哈希表key中的域field的值設為value,新建返回1,覆蓋返回0
- $a = $redis->hset("user","jiang@58haha.cn","{'name':'jiangzunshao','age':25,'work':'php','city':'BeiJing'}");
- //HSETNX key field value------將哈希表key中的域field的值設置為value,當且僅當域field不存在的時候. 設置成功,返回1。如果已經存在且沒有操作被執行,返回0
- $b = $redis->hsetnx("user","jiang@58haha.cn","{'name':'jiangzunshao','age':25,'work':'php','city':'BeiJing'}");
- //HGET key field------返回哈希表key中給定域field的值
- $c = $redis->hget("user","jiang@58haha.cn");
- //HMSET key field value [field value ...]------同時將多個field-value(域-值)對設置到哈希表 key中
- $d = $redis->hmset('user',array('name'=>'jiangzunshao', 'age' => 20));
- //HMGET key field [field ...]------返回哈希表 key中,一個或多個給定域的值
- $f = $redis->hmGet('user', array('name', 'age'));
- //HGETALL key------返回哈希表key中,所有的域和值
- $g = $redis->hgetall('user');
- //HDEL key field [field ...]------刪除哈希表key中的一個或多個指定域,不存在的域將被忽略
- $h = $redis->hdel('user','age');
- //HLEN key------返回哈希表key中域的數量
- $i = $redis->hlen('user');
- //HEXISTS key field------查看哈希表key中,給定域field是否存在,存在返回1,不存在返回0
- $g = $redis->hexists('user','jiang@58haha.cn');
- //HINCRBY key field increment------為哈希表key中的域field的值加上增量increment,可以為負
- $k = $redis->hincrby('user','pv',5);
- //HKEYS key------返回哈希表key中的所有域
- $l = $redis->hkeys('user');
- //HVALS key------返回哈希表key中所有域的值
- $m = $redis->hvals('user');
-
- /****************List(列表)相關操作***************/
- //LPUSH key value [value ...]------將數據插入列表的頭部
- $redis->lpush('dbs','mongodb-3.2');
- //RPUSH key value [value ...]------將數據插入列表的尾部
- $redis->rpush('dbs','redis');
- //LLEN key------獲取列表的長度
- $c = $redis->llen('dbs');
- //LPOP key------移除並返回列表的頭元素
- $d = $redis->lpop('dbs');
- //RPOP key------移除並返回列表的尾元素
- $e = $redis->rpop('dbs');
- //LRANGE key start stop------返回列表中指定區間內元素
- $f = $redis->lrange('dbs',0,$redis->llen('dbs'));
- $f = $redis->lrange('dbs',0,-1);
- //LSET key index value------將列表下標為index的元素的值設置為value
- $h = $redis->lset('dbs',1,'jiang');
- //LTRIM key start stop------列表只保留指定區間內的元素
- $i = $redis->ltrim('dbs',3,5);
- //LINDEX key index------返回列表中下標為index的元素
- $e = $redis->lindex('dbs',$redis->llen('dbs')-1);
- //LINSERT key BEFORE|AFTER pivot value------將值value插入到列表當中,位於值pivot之前或之后
- $g = $redis->linsert('dbs',Redis::BEFORE,'mysql','mysqlmysql');
- $g = $redis->linsert('dbs',Redis::AFTER,'redis','redisredis');
- //RPOPLPUSH source destination------命令RPOPLPUSH在一個原子時間內執行以下兩個動作:1,將列表source中的最后一個元素(尾元素)彈出,並返回給客戶端;2,將source彈出的元素插入到列表destination,作為destination列表的的頭元素
- $k = $redis->rpoplpush('dbs1','dbs');
-
- /****************Set(集合)相關操作***************/
- //SADD key member [member ...]------將一個或多個member元素加入到集合key當中,已經存在於集合的member元素將被忽略
- $a = $redis->sadd('set', 'xingrongjiang');
- //SREM key member [member ...]------移除集合key中的一個或多個member元素,不存在的member元素會被忽略
- $b = $redis->srem('set','Array');
- //SMEMBERS key------返回集合key中的所有成員
- $c = $redis->smembers('set');
- //SISMEMBER key member------判斷member元素是否集合key的成員
- $d = $redis->sismember('set','liyang');
- //SCARD key------返回集合key的基數(集合中元素的數量)
- $e = $redis->scard('set');
- //SMOVE source destination member------將member元素從source集合移動到destination集合
- $f = $redis->smove('set','set1','xingrongjiang');
- //SPOP key------移除並返回集合中的一個隨機元素
- $g = $redis->spop('set');
- //SRANDMEMBER key [count]------如果只提供了key參數,那么返回集合中的一個隨機元素;如果count為正數,且小於集合基數,返回一個包含count個元素的數組,數組中的元素各不相同;如果count大於等於集合基數,返回整個集合;如果count為負數,那么命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度為count的絕對值
- $h = $redis->srandmember('set',2);
- //SINTER key [key ...]------返回一個集合的全部成員,該集合是所有給定集合的交集
- $i = $redis->sinter('set');
- //SINTERSTORE destination key [key ...]------類似於SINTER命令,它將結果保存到destination集合,而不是簡單地返回結果集
- $j = $redis->sinterstore('haha','set');
- //SUNION key [key ...]------返回一個集合的全部成員,該集合是所有給定集合的並集
- $k = $redis->sunion('set','set1');
- //SUNIONSTORE destination key [key ...]------類似於SUNION命令,它將結果保存到destination集合,而不是簡單地返回結果集
- $l = $redis->sunionstore('haha1','haha','set1');
- //SDIFF key [key ...]------返回一個集合的全部成員,該集合是所有給定集合之間的差集
- $m = $redis->sdiff('set','set1');
-
- /****************有序集(Sorted set)相關操作***************/
- //ZADD key score member------向名稱為key的zset中添加元素member,score用於排序,如果該元素已經存在,則根據score更新該元素的順序
- $a = $redis->zadd('site', 10, 'google.com');
- $a = $redis->zadd('site', 9, 'baidu.com');
- $a = $redis->zadd('site', 8, 'sina.com.cn');
- //ZREM key member------刪除名稱為key的zset中的元素member
- // $b = $redis->zrem('site','sina.com.cn');
- //ZCARD key------返回名稱為key的zset的所有元素的個數
- $c = $redis->zcard('site');
- //ZCOUNT key min max------返回有序集key中,score值在min和max之間的成員的數量
- $d = $redis->zcount('site',6,9);
- //ZSCORE key member------返回有序集key中,成員member的score值
- $e = $redis->zscore('site','baidu.com');
- //ZINCRBY key increment member------為有序集key的成員member的score值加上增量increment,返回值就是score加上increment的結果
- $f = $redis->zincrby('site',10,'baidu.com');
- //ZRANGE key start stop [WITHSCORES]------返回有序集key中,指定區間內的成員,其中成員的位置按score值遞增(從小到大)來排序
- $j = $redis->zrange('site',0,-1);
- $j = $redis->zrange('site',0,-1,true);
- //ZREVRANGE key start stop [WITHSCORES]------返回有序集key中,指定區間內的成員,其中成員的位置按score值遞減(從大到小)來排列
- $h = $redis->zrevrange('site',0,-1);
- $h = $redis->zrevrange('site',0,-1,true);
-
- /****************Connection(連接)***************/
- //AUTH password------密碼認證
- $a = $redis->auth('123456');
- //PING------查看連接狀態
- $b = $redis->ping();
- //SELECT index------切換到指定的數據庫,數據庫索引號index用數字值指定,以0作為起始索引值,默認使用0號數據庫
- $c = $redis->select(1);
-
- /****************Server(服務器)***************/
- //TIME------返回當前服務器時間,一個包含兩個字符串的列表:第一個字符串是當前時間(以UNIX時間戳格式表示),而第二個字符串是當前這一秒鍾已經逝去的微秒數
- $a = $redis->time();
- //DBSIZE-----返回當前數據庫的key的數量
- $b = $redis->dbsize();
- //BGREWRITEAOF------使用aof來進行數據庫持久化
- $c = $redis->bgrewriteaof();
- //SAVE------將數據同步保存到磁盤
- $d = $redis->save();
- //BGSAVE------將數據異步保存到磁盤
- $e = $redis->bgsave();
- //LASTSAVE------返回上次成功將數據保存到磁盤的Unix時戳
- $f = $redis->lastsave();
- //SLAVEOF host port------選擇從服務器
- $redis->slaveof('10.0.1.7', 6379);
- //FLUSHALL------清空整個Redis服務器的數據(刪除所有數據庫的所有key)
- $redis->flushall();
- //FLUSHDB------清空當前數據庫中的所有key
- $redis->flushdb();
- //INFO [section]------返回關於 Redis 服務器的各種信息和統計數值
- $g = $redis->info();