php操作redis例項

2021-09-14 03:43:08 字數 4235 閱讀 1417

1、獲取所有key,不包括值;

$redis ->keys("*");

2、獲取乙個或多個key的值,【不限制資料型別】;

$redis ->mget([$key1,$key2]);//引數為陣列;

3、設定指定key的生命週期;

$redis ->expire($key,30);//設定生命週期為30秒;

4、獲取指定key的剩餘生命週期;

$redis->ttl($key);

1、string型別

$key = 'user';

$redis->delete($key);

$redis ->set($key,'11');

$redis ->setnx($key,3);//當$key不存在時設定才生效;如果存在則值仍然不變;

$redis ->decr($key);//當$key的值是數字時可以通過該方法自減1

$redis ->incr($key);//當$key的值是數字時可以通過該方法自增1

$redis ->delete($key);//刪除指定鍵值

$redis ->getmultiple ([$key,'lx']);//獲取多個鍵對應的值 返回值:返回包含所有鍵的值的陣列

$redis ->get($key);//獲取指定key的值

$redis ->exists($key);//判斷鍵是否存在

2、list鍊錶

$key = 'user';

$redis ->delete($key); //每次進來刪除$key資料 用於測試

$redis ->lpush($key,1);//從列表頭部新增元素

$redis ->rpush($key,2);//從列表尾部新增元素

$redis ->rpush($key,4);

$redis ->lpush($key,4);

$redis ->lpop($key); 從鍊錶頭部刪除乙個元素,並且返回這個元素的值,由於這個特性是的list非常適合做高併發秒殺

$redis ->lremove($key,2,3);//刪除$key中的2這個值,最多刪除三個都為2的值;

$redis ->lset($key,2,30);//將下標為2的元素設定為30;返回值:成功返回查詢的值,失敗false

$redis ->lget($key,0);//獲取指定下標的值 返回值:成功返回查詢的值,失敗false

$redis ->ltrim($key,0,1);//擷取保留前兩個值,返回值:成功返回查詢的值,失敗false;一般配合lgetrange使用

$redis ->lgetrange($key,0,-1);//獲取所有list鍊錶中$key的所有值【值可以重複】 返回值:成功返回查詢的值,失敗false

$redis ->llen ($key);//統計元素個數 同$redis ->lsize ($key)一樣 返回值:成功返回查詢的值,失敗false

個人總結:誰最後lpush說明第乙個元素為誰;誰最後乙個rpush代表最後乙個元素為誰;

3、set集合 【和list不同的是set不允許有同樣的值】

$key1 = 'user1';

$key2 = 'user2';

$redis->delete($key1);

$redis->delete($key2);

$redis ->sadd($key1,'2');//為乙個鍵新增乙個值 返回值:成功返回true,失敗false

$redis ->sadd($key1,'1');

$redis ->sadd($key2,'2');

$redis ->sadd($key2,'3');

$redis ->sremove($key,'1');//刪除指定值 返回值:成功返回true,失敗false

$redis ->scontains($key1,'3');//判斷$key1中是否有指定值 返回值:成功返回true,失敗false

$redis ->ssize($key1);//返回集合中儲存值的數量 返回值:成功返回陣列個數,失敗0

$redis ->spop($key1);//隨機移除並返回key中的乙個值 返回值:成功返回刪除的值,失敗false

$redis ->sunion($key2,$key1);//返回所有指定鍵的並集 返回值:成功返回合併後的集,失敗false

$redis ->sinterstore ('user3',$key2,$key1);//執行sinter命令並把結果儲存到新建的集合中 返回值:成功返回,交集的個數,失敗false

$redis ->sinter($key1,$key2);//返回兩個指定集合的交集 返回值:成功返回陣列交集,失敗false

$redis ->sunionstore('user3',$key2,$key1);//執行sunion命令並把結果儲存到新建的變數中 返回值:成功返回,交集的個數,失敗false

$redis ->smembers($key1);//獲取集合內所有值

$redis ->sismember ($key1,2);//如果成員元素2是集合$key1,的成員返回1,如果成員元素不是集合的成員,或key不存在返回0

$redis ->sdiffstore('user3',$key1,$key2);//執行sdiff命令並把結果儲存到新建的變數中。返回值:成功返回數字,失敗false

$redis ->sdiff($key1,$key2);//返回第乙個集合中存在並在第二個集合中不存在的結果 返回值:成功返回陣列,失敗false 返回值:成功返回交集的個數,失敗false

$redis ->sort($key1);//當集合內都為數值時返回排序之後的結果 只要有乙個值不是數值都不返回結果

$redis ->scard($key1);//返回set容器的成員數

4、hash物件 【可以理解為每乙個key代表一條資料,同資料庫中的行一樣】

$key1 = 'user';

$key2 = 'user1';

$redis ->delete($key1);

$redis ->hset($key1,'name','lx');//hash中每乙個key對應乙個或者多個鍵值對;就好比mysql中的字段和值;而$key類似一條資料

$redis ->hset($key1,'age','保密');

$redis ->hset($key1,'***','男');

$redis ->hmget($key2,['name','age']);//獲得雜湊表中多個 key 的值

$redis ->hmset($key2,['name'=>'lx','age'=>27]);//給雜湊表設定多個key的值

$redis ->hvals($key1);//獲得雜湊表中所有的值 順序是隨機的

$redis ->hkeys($key1);//獲得雜湊表中所有的key 順序是隨機的

$redis ->hdel($key1,'user1');//刪除乙個表中指定的key,如果hash表不存在或對應的key不存在,返回false

$redis ->hlen($key1);//哈表中key的數量說白了就是記錄的條數和資料庫中的行一樣

$redis ->hget($key1,'user2');

$redis ->hsetnx($key1,'user2','lx');//當雜湊表中不存在某key時,給該key設定乙個值

$redis ->hexists($key1,'user1');//檢查雜湊key是否存在 返回值:存在返回 true, 不存在返回 false

$redis ->hgetall($key2);// 獲得乙個雜湊表中所有的key和value

$redis ->hincrbyfloat($key1,'user3',3.5);//給雜湊表中某key增加乙個浮點數值,前提是key中已存在的值必須是數值型別

$redis ->hincrby($key1,'user3',3);//給雜湊表中某key增加乙個整數值,前提是key中已存在的值必須是數值型別

php操作redis php操作redis

redis類和redi ception類 redis類用於建立redis客戶端 redis new redis 如果無法訪問redis伺服器,會丟擲redi ception異常物件 連線問題,redis服務已關閉,或者redis主機過載等 在任何其他不涉及無法訪問的伺服器 如金鑰不正確,無效命令等 ...

PHP操作MongoDB例項

從mysql中把資料匯入到mongodb中做測試.連線資料庫 link mysql connect 127.0.0.1 root 123456 mysql select db jiang link mysql query set names utf 8 sql select id name addr...

PHP操作Sphinx例項。

header content type text html charset utf 8 keyword get word 例項化sphinx物件 sphinx new sphinxclient 連線sphinx伺服器 sphinx setserver localhost 9312 拆詞 sph ma...