当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP操作Redis数据库常用方法示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-26 10:14:55 浏览: 评论:0 

这篇文章主要介绍了PHP操作Redis数据库常用方法,结合实例形式总结分析了php针对redis数据库连接、字符串、列表、hash字典、set集合等数据类型相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP操作Redis数据库常用方法。分享给大家供大家参考,具体如下:

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis支持的数据类型有 Stirng(字符串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合);

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

连接:

  1. //实例化redis 
  2. $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(字符串):

  1. // 设置一个字符串的值 
  2. $redis->set('cat', 111); 
  3. //获取一个字符串的值 
  4. echo $redis->get('cat'); // 111 
  5. // 重复set 
  6. $redis->set('cat', 222); 
  7. 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. $list = $redis->lrange('list', 0, -1); 
  8. print_r($list);echo '<br>';  
  9. //从右侧加入一个 
  10. $redis->rpush('list''mysql'); 
  11. $list = $redis->lrange('list', 0, -1); 
  12. print_r($list);echo '<br>'
  13. //从左侧弹出一个 
  14. $redis->lpop('list'); 
  15. $list = $redis->lrange('list', 0, -1); 
  16. print_r($list);echo '<br>'
  17. //从右侧弹出一个 
  18. $redis->rpop('list'); 
  19. $list = $redis->lrange('list', 0, -1); 
  20. print_r($list);echo '<br>'
  21. // 结果 
  22. // Array ( [0] => php [1] => css [2] => html ) 
  23. // Array ( [0] => php [1] => css [2] => html [3] => mysql ) 
  24. // Array ( [0] => css [1] => html [2] => mysql ) 
  25. // Array ( [0] => css [1] => html ) 
  26.  
  27. <?php 
  28.   //实例化redis 
  29.   $redis = new Redis(); 
  30.   //连接 
  31.   $redis->connect('127.0.0.1', 6379); 
  32.   //列表 
  33.   //存储数据到列表中 
  34.   $redis->lpush('list''html'); 
  35.   $redis->lpush('list''css'); 
  36.   $redis->lpush('list''php'); 
  37.   $redis->lpush('list''mysql'); 
  38.   $redis->lpush('list''javascript'); 
  39.   $redis->lpush('list''ajax'); 
  40.   //获取列表中所有的值 
  41.   $list = $redis->lrange('list', 0, -1); 
  42.   print_r($list);echo '<br>';  
  43.   //获取列表的长度 
  44.   $length = $redis->lsize('list'); 
  45.   echo $length;echo '<br>'
  46.   //返回列表key中index位置的值 
  47.   echo $redis->lget('list', 2);echo '<br>'
  48.   echo $redis->lindex('list', 2);echo '<br>'
  49.   //设置列表中index位置的值 
  50.   echo $redis->lset('list', 2, 'linux');echo '<br>'
  51.   $list = $redis->lrange('list', 0, -1); 
  52.   print_r($list);echo '<br>'
  53.   //返回key中从start到end位置间的元素 
  54.   $list = $redis->lrange('list', 0, 2); 
  55.   print_r($list);echo '<br>'
  56.   $list = $redis->lgetrange('list', 0, 2); 
  57.   print_r($list);echo '<br>'
  58.   //截取链表中start到end的元素 
  59. //截取列表后列表发生变化,列表保留截取的元素,其余的删除 
  60.   $list = $redis->ltrim('list', 0, 1); 
  61.   print_r($list);echo '<br>'
  62.   $list = $redis->lrange('list', 0, -1); 
  63.   print_r($list);echo '<br>'
  64.   // 结果 
  65.   // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css [5] => html ) 
  66.   // 6 
  67.   // mysql 
  68.   // mysql 
  69.   // 1 
  70.   // Array ( [0] => ajax [1] => javascript [2] => linux [3] => php [4] => css [5] => html ) 
  71.   // Array ( [0] => ajax [1] => javascript [2] => linux ) 
  72.   // Array ( [0] => ajax [1] => javascript [2] => linux ) 
  73.   // 1 
  74.   // Array ( [0] => ajax [1] => javascript ) 
  75.  
  76. <?php 
  77.   //实例化redis 
  78.   $redis = new Redis(); 
  79.   //连接 
  80.   $redis->connect('127.0.0.1', 6379); 
  81.   //列表 
  82.   //存储数据到列表中 
  83.   $redis->lpush('list''html'); 
  84.   $redis->lpush('list''html'); 
  85.   $redis->lpush('list''html'); 
  86.   $redis->lpush('list''css'); 
  87.   $redis->lpush('list''php'); 
  88.   $redis->lpush('list''mysql'); 
  89.   $redis->lpush('list''javascript'); 
  90.   $redis->lpush('list''html'); 
  91.   $redis->lpush('list''html'); 
  92.   $redis->lpush('list''html'); 
  93.   $redis->lpush('list''ajax'); 
  94.   //获取列表中所有的值 
  95.   $list = $redis->lrange('list', 0, -1); 
  96.   print_r($list);echo '<br>';  
  97.   //删除列表中count个值为value的元素 
  98.   //从左向右删 
  99.   $redis->lrem('list''html', 2); 
  100.   $list = $redis->lrange('list', 0, -1); 
  101.   print_r($list);echo '<br>';  
  102.   //从右向左删 
  103.   $redis->lrem('list''html', -2); 
  104.   $list = $redis->lrange('list', 0, -1); 
  105.   print_r($list);echo '<br>';  
  106.   //删除所有 
  107.   $redis->lrem('list''html', 0); 
  108.   $list = $redis->lrange('list', 0, -1); 
  109.   print_r($list);echo '<br>'
  110.   // 结果 
  111.   // Array ( [0] => ajax [1] => html [2] => html [3] => html [4] => javascript [5] => mysql [6] => php [7] => css [8] => html [9] => html [10] => html ) 
  112.   // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html [7] => html [8] => html ) 
  113.   // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html ) 
  114.   // 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.   //获取hash中所有的keys 
  18.   $arr = $redis->hkeys('hash'); 
  19.   print_r($arr);echo '<br>'
  20.   //获取hash中所有的值 顺序是随机的 
  21.   $arr = $redis->hvals('hash'); 
  22.   print_r($arr);echo '<br>'
  23.   //获取一个hash中所有的key和value 顺序是随机的 
  24.   $arr = $redis->hgetall('hash'); 
  25.   print_r($arr);echo '<br>'
  26.   //获取hash中key的数量 
  27.   echo $redis->hlen('hash');echo '<br>'
  28.   //删除hash中一个key 如果表不存在或key不存在则返回false 
  29.   echo $redis->hdel('hash''dog');echo '<br>'
  30.   var_dump($redis->hdel('hash''rabbit'));echo '<br>'
  31.   // 结果 
  32.   // 1 
  33.   // 0 
  34.   // 0 
  35.   // 1 
  36.   // 1 
  37.   // 1 
  38.   // cat1 
  39.   // Array ( [0] => cat [1] => dog [2] => bird [3] => monkey ) 
  40.   // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey ) 
  41.   // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey ) 
  42.   // 4 
  43.   // 1 
  44.   // int(0) 
  45.  
  46. <?php 
  47.   //实例化redis 
  48.   $redis = new Redis(); 
  49.   //连接 
  50.   $redis->connect('127.0.0.1', 6379); 
  51.   //字典 
  52.   //批量设置多个key的值 
  53.   $arr = [1=>1, 2=>2, 3=>3, 4=>4, 5=>5]; 
  54.   $redis->hmset('hash'$arr); 
  55.   print_r($redis->hgetall('hash'));echo '<br>'
  56.   // 批量获得额多个key的值 
  57.   $arr = [1, 2, 3, 5]; 
  58.   $hash = $redis->hmget('hash'$arr); 
  59.   print_r($hash);echo '<br>'
  60.   //检测hash中某个key知否存在 
  61.   echo $redis->hexists('hash''1');echo '<br>'
  62.   var_dump($redis->hexists('hash''cat'));echo '<br>'
  63.   print_r($redis->hgetall('hash'));echo '<br>'
  64.   //给hash表中key增加一个整数值 
  65.   $redis->hincrby('hash''1', 1); 
  66.   print_r($redis->hgetall('hash'));echo '<br>'
  67.   //给hash中的某个key增加一个浮点值 
  68.   $redis->hincrbyfloat('hash', 2, 1.3); 
  69.   print_r($redis->hgetall('hash'));echo '<br>'
  70.   //结果 
  71.   // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) 
  72.   // Array ( [1] => 1 [2] => 2 [3] => 3 [5] => 5 ) 
  73.   // 1 
  74.   // bool(false) 
  75.   // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) 
  76.   // Array ( [1] => 2 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) 
  77.   // 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.   $set = $redis->smembers('set'); 
  16.   print_r($set);echo '<br>'
  17.   //删除集合中的value 
  18.   echo $redis->srem('set''cat');echo '<br>'
  19.   var_dump($redis->srem('set''bird'));echo '<br>'
  20.   $set = $redis->smembers('set'); 
  21.   print_r($set);echo '<br>'
  22.   //判断元素是否是set的成员 
  23.   var_dump($redis->sismember('set''dog'));echo '<br>'
  24.   var_dump($redis->sismember('set''bird'));echo '<br>'
  25.   //查看集合中成员的数量 
  26.   echo $redis->scard('set');echo '<br>'
  27.   //移除并返回集合中的一个随机元素(返回被移除的元素) 
  28.   echo $redis->spop('set');echo '<br>'
  29.   print_r($redis->smembers('set'));echo '<br>'
  30.   // 结果 
  31.   // 1 
  32.   // 0 
  33.   // 1 
  34.   // 1 
  35.   // 1 
  36.   // 1 
  37.   // Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse ) 
  38.   // 1 
  39.   // int(0) 
  40.   // Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear ) 
  41.   // bool(true) 
  42.   // bool(false) 
  43.   // 4 
  44.   // bear 
  45.   // Array ( [0] => dog [1] => rabbit [2] => horse ) 
  46.  
  47. <?php 
  48.   //实例化redis 
  49.   $redis = new Redis(); 
  50.   //连接 
  51.   $redis->connect('127.0.0.1', 6379); 
  52.   //集合 
  53.   $redis->sadd('set''horse'); 
  54.   $redis->sadd('set''cat'); 
  55.   $redis->sadd('set''dog'); 
  56.   $redis->sadd('set''bird'); 
  57.   $redis->sadd('set2''fish'); 
  58.   $redis->sadd('set2''dog'); 
  59.   $redis->sadd('set2''bird'); 
  60.   print_r($redis->smembers('set'));echo '<br>'
  61.   print_r($redis->smembers('set2'));echo '<br>'
  62.   //返回集合的交集 
  63.   print_r($redis->sinter('set''set2'));echo '<br>'
  64.   //执行交集操作 并结果放到一个集合中 
  65.   $redis->sinterstore('output''set''set2'); 
  66.   print_r($redis->smembers('output'));echo '<br>'
  67.   //返回集合的并集 
  68.   print_r($redis->sunion('set''set2'));echo '<br>'
  69.   //执行并集操作 并结果放到一个集合中 
  70.   $redis->sunionstore('output''set''set2'); 
  71.   print_r($redis->smembers('output'));echo '<br>'
  72.   //返回集合的差集 
  73.   print_r($redis->sdiff('set''set2'));echo '<br>'
  74.   //执行差集操作 并结果放到一个集合中 
  75.   $redis->sdiffstore('output''set''set2'); 
  76.   print_r($redis->smembers('output'));echo '<br>'
  77.   // 结果 
  78.   // Array ( [0] => cat [1] => dog [2] => bird [3] => horse ) 
  79.   // Array ( [0] => bird [1] => dog [2] => fish ) 
  80.   // Array ( [0] => bird [1] => dog ) 
  81.   // Array ( [0] => dog [1] => bird ) 
  82.   // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish ) 
  83.   // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish ) 
  84.   // Array ( [0] => horse [1] => cat ) 
  85.   // 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.   print_r($redis->zrange('set', 0, -1));echo '<br>'
  15.   print_r($redis->zrange('set', 0, -1, true));echo '<br>'
  16.   //返回元素的score值 
  17.   echo $redis->zscore('set''dog');echo '<br>'
  18.   //返回存储的个数 
  19.   echo $redis->zcard('set');echo '<br>'
  20.   //删除指定成员 
  21.   $redis->zrem('set''cat'); 
  22.   print_r($redis->zrange('set', 0, -1));echo '<br>'
  23.   //返回集合中介于min和max之间的值的个数 
  24.   print_r($redis->zcount('set', 3, 5));echo '<br>'
  25.   //返回有序集合中score介于min和max之间的值 
  26.   print_r($redis->zrangebyscore('set', 3, 5));echo '<br>'
  27.   print_r($redis->zrangebyscore('set', 3, 5, ['withscores'=>true]));echo '<br>'
  28.   //返回集合中指定区间内所有的值 
  29.   print_r($redis->zrevrange('set', 1, 2));echo '<br>'
  30.   print_r($redis->zrevrange('set', 1, 2, true));echo '<br>'
  31.   //有序集合中指定值的socre增加 
  32.   echo $redis->zscore('set''dog');echo '<br>'
  33.   $redis->zincrby('set', 2, 'dog'); 
  34.   echo $redis->zscore('set''dog');echo '<br>'
  35.   //移除score值介于min和max之间的元素 
  36.   print_r($redis->zrange('set', 0, -1, true));echo '<br>'
  37.   print_r($redis->zremrangebyscore('set', 3, 4));echo '<br>'
  38.   print_r($redis->zrange('set', 0, -1, true));echo '<br>'
  39.   //结果 
  40.   // 1 
  41.   // 0 
  42.   // 0 
  43.   // 0 
  44.   // 0 
  45.   // Array ( [0] => cat [1] => fish [2] => bird [3] => dog ) 
  46.   // Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 ) 
  47.   // 4 
  48.   // 4 
  49.   // Array ( [0] => fish [1] => bird [2] => dog ) 
  50.   // 3 
  51.   // Array ( [0] => fish [1] => bird [2] => dog ) 
  52.   // Array ( [fish] => 3 [bird] => 4 [dog] => 4 ) 
  53.   // Array ( [0] => bird [1] => fish ) 
  54.   // Array ( [bird] => 4 [fish] => 3 ) 
  55.   // 4 
  56.   // 6 
  57.   // Array ( [fish] => 3 [bird] => 4 [dog] => 6 ) 
  58.   // 2 
  59.   // Array ( [dog] => 6 )

Tags: PHP操作Redis

分享到:

相关文章