PHP操作redis

來源:互聯網
上載者:User

標籤:[1]   window   網路   store   字元   mys   添加元素   sorted   存在   

Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。

Redis支援的資料類型有 Stirng(字串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合);

redis版本是Redis 2.6.12 系統是在Windows+Apache2.4+php5.6

串連:

1     //執行個體化redis2     $redis = new Redis();3     //串連4     $redis->connect(‘127.0.0.1‘, 6379);5     //檢測是否串連成功6     echo "Server is running: " . $redis->ping();7     // 輸出結果 Server is running: +PONG    

Strng(字串):

  // 設定一個字串的值    $redis->set(‘cat‘, 111);    //擷取一個字串的值    echo $redis->get(‘cat‘); // 111    // 重複set    $redis->set(‘cat‘, 222);    echo $redis->get(‘cat‘); // 222

List(列表):

 1     //列表 2     //儲存資料到列表中 3     $redis->lpush(‘list‘, ‘html‘); 4     $redis->lpush(‘list‘, ‘css‘); 5     $redis->lpush(‘list‘, ‘php‘); 6  7     //擷取列表中所有的值 8     $list = $redis->lrange(‘list‘, 0, -1); 9     print_r($list);echo ‘<br>‘; 10 11     //從右側加入一個12     $redis->rpush(‘list‘, ‘mysql‘);13     $list = $redis->lrange(‘list‘, 0, -1);14     print_r($list);echo ‘<br>‘;15 16     //從左側彈出一個17     $redis->lpop(‘list‘);18     $list = $redis->lrange(‘list‘, 0, -1);19     print_r($list);echo ‘<br>‘;20 21     //從右側彈出一個22     $redis->rpop(‘list‘);23     $list = $redis->lrange(‘list‘, 0, -1);24     print_r($list);echo ‘<br>‘;25 26     // 結果27     // Array ( [0] => php [1] => css [2] => html )28     // Array ( [0] => php [1] => css [2] => html [3] => mysql )29     // Array ( [0] => css [1] => html [2] => mysql )30     // Array ( [0] => css [1] => html ) 
 1 <?php 2     //執行個體化redis 3     $redis = new Redis(); 4     //串連 5     $redis->connect(‘127.0.0.1‘, 6379); 6     //列表 7     //儲存資料到列表中 8     $redis->lpush(‘list‘, ‘html‘); 9     $redis->lpush(‘list‘, ‘css‘);10     $redis->lpush(‘list‘, ‘php‘);11     $redis->lpush(‘list‘, ‘mysql‘);12     $redis->lpush(‘list‘, ‘javascript‘);13     $redis->lpush(‘list‘, ‘ajax‘);14 15     //擷取列表中所有的值16     $list = $redis->lrange(‘list‘, 0, -1);17     print_r($list);echo ‘<br>‘; 18 19     //擷取列表的長度20     $length = $redis->lsize(‘list‘);21     echo $length;echo ‘<br>‘;22 23     //返回列表key中index位置的值24     echo $redis->lget(‘list‘, 2);echo ‘<br>‘;25     echo $redis->lindex(‘list‘, 2);echo ‘<br>‘;26 27     //設定列表中index位置的值28     echo $redis->lset(‘list‘, 2, ‘linux‘);echo ‘<br>‘;29     $list = $redis->lrange(‘list‘, 0, -1);30     print_r($list);echo ‘<br>‘;31 32     //返回key中從start到end位置間的元素33     $list = $redis->lrange(‘list‘, 0, 2);34     print_r($list);echo ‘<br>‘;35 36     $list = $redis->lgetrange(‘list‘, 0, 2);37     print_r($list);echo ‘<br>‘;38 39     //截取鏈表中start到end的元素
    //截取列表後列表發生變化,列表保留截取的元素,其餘的刪除40 $list = $redis->ltrim(‘list‘, 0, 1);41 print_r($list);echo ‘<br>‘;42 43 $list = $redis->lrange(‘list‘, 0, -1);44 print_r($list);echo ‘<br>‘;45 // 結果46 // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css [5] => html )47 // 648 // mysql49 // mysql50 // 151 // Array ( [0] => ajax [1] => javascript [2] => linux [3] => php [4] => css [5] => html )52 // Array ( [0] => ajax [1] => javascript [2] => linux )53 // Array ( [0] => ajax [1] => javascript [2] => linux )54 // 155 // Array ( [0] => ajax [1] => javascript )
 1 <?php 2     //執行個體化redis 3     $redis = new Redis(); 4     //串連 5     $redis->connect(‘127.0.0.1‘, 6379); 6     //列表 7     //儲存資料到列表中 8     $redis->lpush(‘list‘, ‘html‘); 9     $redis->lpush(‘list‘, ‘html‘);10     $redis->lpush(‘list‘, ‘html‘);11     $redis->lpush(‘list‘, ‘css‘);12     $redis->lpush(‘list‘, ‘php‘);13     $redis->lpush(‘list‘, ‘mysql‘);14     $redis->lpush(‘list‘, ‘javascript‘);15     $redis->lpush(‘list‘, ‘html‘);16     $redis->lpush(‘list‘, ‘html‘);17     $redis->lpush(‘list‘, ‘html‘);18     $redis->lpush(‘list‘, ‘ajax‘);19 20     //擷取列表中所有的值21     $list = $redis->lrange(‘list‘, 0, -1);22     print_r($list);echo ‘<br>‘; 23 24     //刪除列表中count個值為value的元素25     //從左向右刪26     $redis->lrem(‘list‘, ‘html‘, 2);27     $list = $redis->lrange(‘list‘, 0, -1);28     print_r($list);echo ‘<br>‘; 29     30     //從右向左刪31     $redis->lrem(‘list‘, ‘html‘, -2);32     $list = $redis->lrange(‘list‘, 0, -1);33     print_r($list);echo ‘<br>‘; 34 35     //刪除所有36     $redis->lrem(‘list‘, ‘html‘, 0);37     $list = $redis->lrange(‘list‘, 0, -1);38     print_r($list);echo ‘<br>‘;39 40     // 結果41     // Array ( [0] => ajax [1] => html [2] => html [3] => html [4] => javascript [5] => mysql [6] => php [7] => css [8] => html [9] => html [10] => html )42     // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html [7] => html [8] => html )43     // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html )44     // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css )     

 Hash(字典):

 1 <?php 2     //執行個體化redis 3     $redis = new Redis(); 4     //串連 5     $redis->connect(‘127.0.0.1‘, 6379); 6     //字典 7     //給hash表中某個key設定value 8     //如果沒有則設定成功,返回1,如果存在會替換原有的值,返回0,失敗返回0 9     echo $redis->hset(‘hash‘, ‘cat‘, ‘cat‘);echo ‘<br>‘;10     echo $redis->hset(‘hash‘, ‘cat‘, ‘cat‘);echo ‘<br>‘;11     echo $redis->hset(‘hash‘, ‘cat‘, ‘cat1‘);echo ‘<br>‘;12     echo $redis->hset(‘hash‘, ‘dog‘, ‘dog‘);echo ‘<br>‘;13     echo $redis->hset(‘hash‘, ‘bird‘, ‘bird‘);echo ‘<br>‘;14     echo $redis->hset(‘hash‘, ‘monkey‘, ‘monkey‘);echo ‘<br>‘;15     //擷取hash中某個key的值16     echo $redis->hget(‘hash‘, ‘cat‘);echo ‘<br>‘;17 18     //擷取hash中所有的keys19     $arr = $redis->hkeys(‘hash‘);20     print_r($arr);echo ‘<br>‘;21 22     //擷取hash中所有的值 順序是隨機的23     $arr = $redis->hvals(‘hash‘);24     print_r($arr);echo ‘<br>‘;25 26     //擷取一個hash中所有的key和value 順序是隨機的27     $arr = $redis->hgetall(‘hash‘);28     print_r($arr);echo ‘<br>‘;29 30     //擷取hash中key的數量31     echo $redis->hlen(‘hash‘);echo ‘<br>‘;32 33     //刪除hash中一個key 如果表不存在或key不存在則返回false34     echo $redis->hdel(‘hash‘, ‘dog‘);echo ‘<br>‘;35     var_dump($redis->hdel(‘hash‘, ‘rabbit‘));echo ‘<br>‘;36 37     // 結果38     // 139     // 040     // 041     // 142     // 143     // 144     // cat145     // Array ( [0] => cat [1] => dog [2] => bird [3] => monkey )46     // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey )47     // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey )48     // 449     // 150     // int(0) 
 1 <?php 2     //執行個體化redis 3     $redis = new Redis(); 4     //串連 5     $redis->connect(‘127.0.0.1‘, 6379); 6     //字典 7     //大量設定多個key的值 8     $arr = [1=>1, 2=>2, 3=>3, 4=>4, 5=>5]; 9     $redis->hmset(‘hash‘, $arr);10     print_r($redis->hgetall(‘hash‘));echo ‘<br>‘;11 12     // 批量獲得額多個key的值13     $arr = [1, 2, 3, 5];14     $hash = $redis->hmget(‘hash‘, $arr);15     print_r($hash);echo ‘<br>‘;16 17     //檢測hash中某個key知否存在18     echo $redis->hexists(‘hash‘, ‘1‘);echo ‘<br>‘;19     var_dump($redis->hexists(‘hash‘, ‘cat‘));echo ‘<br>‘;20 21     print_r($redis->hgetall(‘hash‘));echo ‘<br>‘;22 23     //給hash表中key增加一個整數值24     $redis->hincrby(‘hash‘, ‘1‘, 1);25     print_r($redis->hgetall(‘hash‘));echo ‘<br>‘;26 27     //給hash中的某個key增加一個浮點值28     $redis->hincrbyfloat(‘hash‘, 2, 1.3);29     print_r($redis->hgetall(‘hash‘));echo ‘<br>‘;30 31     //結果32     // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )33     // Array ( [1] => 1 [2] => 2 [3] => 3 [5] => 5 )34     // 135     // bool(false)36     // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )37     // Array ( [1] => 2 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )38     // Array ( [1] => 2 [2] => 3.3 [3] => 3 [4] => 4 [5] => 5 ) 

 Set(集合):

 1 <?php 2     //執行個體化redis 3     $redis = new Redis(); 4     //串連 5     $redis->connect(‘127.0.0.1‘, 6379); 6     //集合 7     // 添加一個元素 8     echo $redis->sadd(‘set‘, ‘cat‘);echo ‘<br>‘; 9     echo $redis->sadd(‘set‘, ‘cat‘);echo ‘<br>‘;10     echo $redis->sadd(‘set‘, ‘dog‘);echo ‘<br>‘;11     echo $redis->sadd(‘set‘, ‘rabbit‘);echo ‘<br>‘;12     echo $redis->sadd(‘set‘, ‘bear‘);echo ‘<br>‘;13     echo $redis->sadd(‘set‘, ‘horse‘);echo ‘<br>‘;14 15     // 查看集合中所有的元素16     $set = $redis->smembers(‘set‘);17     print_r($set);echo ‘<br>‘;18 19     //刪除集合中的value20     echo $redis->srem(‘set‘, ‘cat‘);echo ‘<br>‘;21     var_dump($redis->srem(‘set‘, ‘bird‘));echo ‘<br>‘;22 23     $set = $redis->smembers(‘set‘);24     print_r($set);echo ‘<br>‘;25 26     //判斷元素是否是set的成員27     var_dump($redis->sismember(‘set‘, ‘dog‘));echo ‘<br>‘;28     var_dump($redis->sismember(‘set‘, ‘bird‘));echo ‘<br>‘;29 30     //查看集合中成員的數量31     echo $redis->scard(‘set‘);echo ‘<br>‘;32 33     //移除並返回集合中的一個隨機元素(返回被移除的元素)34     echo $redis->spop(‘set‘);echo ‘<br>‘;35 36     print_r($redis->smembers(‘set‘));echo ‘<br>‘;37 38     // 結果39     // 140     // 041     // 142     // 143     // 144     // 145     // Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )46     // 147     // int(0)48     // Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )49     // bool(true)50     // bool(false)51     // 452     // bear53     // Array ( [0] => dog [1] => rabbit [2] => horse ) 
 1 <?php 2     //執行個體化redis 3     $redis = new Redis(); 4     //串連 5     $redis->connect(‘127.0.0.1‘, 6379); 6     //集合 7     $redis->sadd(‘set‘, ‘horse‘); 8     $redis->sadd(‘set‘, ‘cat‘); 9     $redis->sadd(‘set‘, ‘dog‘);10     $redis->sadd(‘set‘, ‘bird‘);11     $redis->sadd(‘set2‘, ‘fish‘);12     $redis->sadd(‘set2‘, ‘dog‘);13     $redis->sadd(‘set2‘, ‘bird‘);14 15     print_r($redis->smembers(‘set‘));echo ‘<br>‘;16     print_r($redis->smembers(‘set2‘));echo ‘<br>‘;17 18     //返回集合的交集19     print_r($redis->sinter(‘set‘, ‘set2‘));echo ‘<br>‘;20 21     //執行交集操作 並結果放到一個集合中22     $redis->sinterstore(‘output‘, ‘set‘, ‘set2‘);23     print_r($redis->smembers(‘output‘));echo ‘<br>‘;24 25     //返回集合的並集26     print_r($redis->sunion(‘set‘, ‘set2‘));echo ‘<br>‘;27 28     //執行並集操作 並結果放到一個集合中29     $redis->sunionstore(‘output‘, ‘set‘, ‘set2‘);30     print_r($redis->smembers(‘output‘));echo ‘<br>‘;31 32     //返回集合的差集33     print_r($redis->sdiff(‘set‘, ‘set2‘));echo ‘<br>‘;34 35     //執行差集操作 並結果放到一個集合中36     $redis->sdiffstore(‘output‘, ‘set‘, ‘set2‘);37     print_r($redis->smembers(‘output‘));echo ‘<br>‘;38 39     // 結果40     // Array ( [0] => cat [1] => dog [2] => bird [3] => horse )41     // Array ( [0] => bird [1] => dog [2] => fish )42     // Array ( [0] => bird [1] => dog )43     // Array ( [0] => dog [1] => bird )44     // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )45     // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )46     // Array ( [0] => horse [1] => cat )47     // Array ( [0] => horse [1] => cat ) 

Sorted Set(有序集合):

 1 <?php 2     //執行個體化redis 3     $redis = new Redis(); 4     //串連 5     $redis->connect(‘127.0.0.1‘, 6379); 6     //有序集合 7     //添加元素 8     echo $redis->zadd(‘set‘, 1, ‘cat‘);echo ‘<br>‘; 9     echo $redis->zadd(‘set‘, 2, ‘dog‘);echo ‘<br>‘;10     echo $redis->zadd(‘set‘, 3, ‘fish‘);echo ‘<br>‘;11     echo $redis->zadd(‘set‘, 4, ‘dog‘);echo ‘<br>‘;12     echo $redis->zadd(‘set‘, 4, ‘bird‘);echo ‘<br>‘;13     14     //返回集合中的所有元素15     print_r($redis->zrange(‘set‘, 0, -1));echo ‘<br>‘;16     print_r($redis->zrange(‘set‘, 0, -1, true));echo ‘<br>‘;17 18     //返回元素的score值19     echo $redis->zscore(‘set‘, ‘dog‘);echo ‘<br>‘;20 21     //返回儲存的個數22     echo $redis->zcard(‘set‘);echo ‘<br>‘;23 24     //刪除指定成員25     $redis->zrem(‘set‘, ‘cat‘);26     print_r($redis->zrange(‘set‘, 0, -1));echo ‘<br>‘;27 28     //返回集合中介於min和max之間的值的個數29     print_r($redis->zcount(‘set‘, 3, 5));echo ‘<br>‘;30 31     //返回有序集合中score介於min和max之間的值32     print_r($redis->zrangebyscore(‘set‘, 3, 5));echo ‘<br>‘;33     print_r($redis->zrangebyscore(‘set‘, 3, 5, [‘withscores‘=>true]));echo ‘<br>‘;34 35     //返回集合中指定區間內所有的值36     print_r($redis->zrevrange(‘set‘, 1, 2));echo ‘<br>‘;37     print_r($redis->zrevrange(‘set‘, 1, 2, true));echo ‘<br>‘;38 39 40     //有序集合中指定值的socre增加41     echo $redis->zscore(‘set‘, ‘dog‘);echo ‘<br>‘;42     $redis->zincrby(‘set‘, 2, ‘dog‘);43     echo $redis->zscore(‘set‘, ‘dog‘);echo ‘<br>‘;44 45     //移除score值介於min和max之間的元素46     print_r($redis->zrange(‘set‘, 0, -1, true));echo ‘<br>‘;47     print_r($redis->zremrangebyscore(‘set‘, 3, 4));echo ‘<br>‘;48     print_r($redis->zrange(‘set‘, 0, -1, true));echo ‘<br>‘;49 50     //結果51     // 152     // 053     // 054     // 055     // 056     // Array ( [0] => cat [1] => fish [2] => bird [3] => dog )57     // Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )58     // 459     // 460     // Array ( [0] => fish [1] => bird [2] => dog )61     // 362     // Array ( [0] => fish [1] => bird [2] => dog )63     // Array ( [fish] => 3 [bird] => 4 [dog] => 4 )64     // Array ( [0] => bird [1] => fish )65     // Array ( [bird] => 4 [fish] => 3 )66     // 467     // 668     // Array ( [fish] => 3 [bird] => 4 [dog] => 6 )69     // 270     // Array ( [dog] => 6 )

PHP操作redis

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.