PHP头条
热点:

PHP操作redis,phpredis


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

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

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

  4. 连接:


  5.      //实例化redis
  6.      $redis = new Redis();
  7.    //连接
  8.    $redis->connect('127.0.0.1', 6379);
  9.      //检测是否连接成功
  10.      echo "Server is running: " . $redis->ping();
  11.      // 输出结果 Server is running: +PONG    

  12. Strng(字符串):


  13.   // 设置一个字符串的值
  14.     $redis->set('cat', 111);

  15.     //获取一个字符串的值
  16.     echo $redis->get('cat'); // 111

  17.     // 重复set
  18.     $redis->set('cat', 222);
  19.     echo $redis->get('cat'); // 222

  20. List(列表):
  21.      //列表
  22.     //存储数据到列表中
  23.      $redis->lpush('list', 'html');
  24.      $redis->lpush('list', 'css');
  25.      $redis->lpush('list', 'php');
  26.  
  27.      //获取列表中所有的值
  28.      $list = $redis->lrange('list', 0, -1);
  29.      print_r($list);echo '<br>'; 
  30.  
  31.      //从右侧加入一个
  32.      $redis->rpush('list', 'mysql');
  33.      $list = $redis->lrange('list', 0, -1);
  34.      print_r($list);echo '<br>';
  35.  
  36.      //从左侧弹出一个
  37.      $redis->lpop('list');
  38.      $list = $redis->lrange('list', 0, -1);
  39.      print_r($list);echo '<br>';
  40.  
  41.      //从右侧弹出一个
  42.      $redis->rpop('list');
  43.      $list = $redis->lrange('list', 0, -1);
  44.      print_r($list);echo '<br>';
  45.  
  46.      // 结果
  47.      // Array ( [0] => php [1] => css [2] => html )
  48.      // Array ( [0] => php [1] => css [2] => html [3] => mysql )
  49.      // Array ( [0] => css [1] => html [2] => mysql )
  50.      // Array ( [0] => css [1] => html ) 


  51. <?php
  52.      //实例化redis
  53.      $redis = new Redis();
  54.      //连接
  55.      $redis->connect('127.0.0.1', 6379);
  56.      //列表
  57.      //存储数据到列表中
  58.      $redis->lpush('list', 'html');
  59.      $redis->lpush('list', 'css');
  60.      $redis->lpush('list', 'php');
  61.      $redis->lpush('list', 'mysql');
  62.      $redis->lpush('list', 'javascript');
  63.      $redis->lpush('list', 'ajax');
  64.  
  65.      //获取列表中所有的值
  66.     $list = $redis->lrange('list', 0, -1);
  67.      print_r($list);echo '<br>'; 
  68.  
  69.      //获取列表的长度
  70.      $length = $redis->lsize('list');
  71.      echo $length;echo '<br>';
  72.  
  73.      //返回列表key中index位置的值
  74.      echo $redis->lget('list', 2);echo '<br>';
  75.      echo $redis->lindex('list', 2);echo '<br>';
  76.  
  77.      //设置列表中index位置的值
  78.      echo $redis->lset('list', 2, 'linux');echo '<br>';
  79.      $list = $redis->lrange('list', 0, -1);
  80.      print_r($list);echo '<br>';
  81.  
  82.      //返回key中从start到end位置间的元素
  83.      $list = $redis->lrange('list', 0, 2);
  84.      print_r($list);echo '<br>';
  85.  
  86.      $list = $redis->lgetrange('list', 0, 2);
  87.     print_r($list);echo '<br>';
  88.  
  89.      //截取链表中start到end的元素
  90.     //截取列表后列表发生变化,列表保留截取的元素,其余的删除
  91.      $list = $redis->ltrim('list', 0, 1);
  92.      print_r($list);echo '<br>';
  93.     
  94.      $list = $redis->lrange('list', 0, -1);
  95.      print_r($list);echo '<br>';
  96.      // 结果
  97.      // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css [5] => html )
  98.      // 6
  99.      // mysql
  100.      // mysql
  101.      // 1
  102.      // Array ( [0] => ajax [1] => javascript [2] => linux [3] => php [4] => css [5] => html )
  103.      // Array ( [0] => ajax [1] => javascript [2] => linux )
  104.      // Array ( [0] => ajax [1] => javascript [2] => linux )
  105.      // 1
  106.     // Array ( [0] => ajax [1] => javascript )  


  107. <?php
  108.      //实例化redis
  109.      $redis = new Redis();
  110.      //连接
  111.      $redis->connect('127.0.0.1', 6379);
  112.      //列表
  113.      //存储数据到列表中
  114.      $redis->lpush('list', 'html');
  115.      $redis->lpush('list', 'html');
  116.      $redis->lpush('list', 'html');
  117.      $redis->lpush('list', 'css');
  118.      $redis->lpush('list', 'php');
  119.      $redis->lpush('list', 'mysql');
  120.      $redis->lpush('list', 'javascript');
  121.     $redis->lpush('list', 'html');
  122.      $redis->lpush('list', 'html');
  123.      $redis->lpush('list', 'html');
  124.      $redis->lpush('list', 'ajax');

  125.      //获取列表中所有的值
  126.      $list = $redis->lrange('list', 0, -1);
  127.      print_r($list);echo '<br>'; 
  128.  
  129.      //删除列表中count个值为value的元素
  130.      //从左向右删
  131.      $redis->lrem('list', 'html', 2);
  132.      $list = $redis->lrange('list', 0, -1);
  133.      print_r($list);echo '<br>'; 
  134.      
  135.      //从右向左删
  136.      $redis->lrem('list', 'html', -2);
  137.      $list = $redis->lrange('list', 0, -1);
  138.      print_r($list);echo '<br>'; 
  139.  
  140.      //删除所有
  141.      $redis->lrem('list', 'html', 0);
  142.     $list = $redis->lrange('list', 0, -1);
  143.      print_r($list);echo '<br>';
  144.  
  145.      // 结果
  146.      // Array ( [0] => ajax [1] => html [2] => html [3] => html [4] => javascript [5] => mysql [6] => php [7] => css [8] => html [9] => html [10] => html )
  147.      // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html [7] => html [8] => html )
  148.      // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html )
  149.      // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css )     

  150.  Hash(字典):


  151. <?php
  152.      //实例化redis
  153.      $redis = new Redis();
  154.      //连接
  155.      $redis->connect('127.0.0.1', 6379);
  156.      //字典
  157.      //给hash表中某个key设置value
  158.      //如果没有则设置成功,返回1,如果存在会替换原有的值,返回0,失败返回0
  159.      echo $redis->hset('hash', 'cat', 'cat');echo '<br>';
  160.      echo $redis->hset('hash', 'cat', 'cat');echo '<br>';
  161.      echo $redis->hset('hash', 'cat', 'cat1');echo '<br>';
  162.      echo $redis->hset('hash', 'dog', 'dog');echo '<br>';
  163.      echo $redis->hset('hash', 'bird', 'bird');echo '<br>';
  164.      echo $redis->hset('hash', 'monkey', 'monkey');echo '<br>';
  165.      //获取hash中某个key的值
  166.      echo $redis->hget('hash', 'cat');echo '<br>';
  167.  
  168.      //获取hash中所有的keys
  169.      $arr = $redis->hkeys('hash');
  170.      print_r($arr);echo '<br>';
  171.  
  172.      //获取hash中所有的值 顺序是随机的
  173.      $arr = $redis->hvals('hash');
  174.      print_r($arr);echo '<br>';
  175.  
  176.      //获取一个hash中所有的key和value 顺序是随机的
  177.      $arr = $redis->hgetall('hash');
  178.      print_r($arr);echo '<br>';
  179.  
  180.      //获取hash中key的数量
  181.      echo $redis->hlen('hash');echo '<br>';
  182.  
  183.      //删除hash中一个key 如果表不存在或key不存在则返回false
  184.     echo $redis->hdel('hash', 'dog');echo '<br>';
  185.     var_dump($redis->hdel('hash', 'rabbit'));echo '<br>';
  186.  
  187.      // 结果
  188.      // 1
  189.      // 0
  190.      // 0
  191.      // 1
  192.      // 1
  193.      // 1
  194.      // cat1
  195.      // Array ( [0] => cat [1] => dog [2] => bird [3] => monkey )
  196.      // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey )
  197.      // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey )
  198.      // 4
  199.     // 1
  200.      // int(0) 


  201. <?php
  202.      //实例化redis
  203.      $redis = new Redis();
  204.      //连接
  205.      $redis->connect('127.0.0.1', 6379);
  206.      //字典
  207.      //批量设置多个key的值
  208.      $arr = [1=>1, 2=>2, 3=>3, 4=>4, 5=>5];
  209.      $redis->hmset('hash', $arr);
  210.      print_r($redis->hgetall('hash'));echo '<br>';
  211.  
  212.      // 批量获得额多个key的值
  213.      $arr = [1, 2, 3, 5];
  214.      $hash = $redis->hmget('hash', $arr);
  215.      print_r($hash);echo '<br>';
  216.  
  217.      //检测hash中某个key知否存在
  218.      echo $redis->hexists('hash', '1');echo '<br>';
  219.      var_dump($redis->hexists('hash', 'cat'));echo '<br>';
  220.  
  221.      print_r($redis->hgetall('hash'));echo '<br>';
  222.  
  223.      //给hash表中key增加一个整数值
  224.      $redis->hincrby('hash', '1', 1);
  225.     print_r($redis->hgetall('hash'));echo '<br>';
  226.  
  227.      //给hash中的某个key增加一个浮点值
  228.      $redis->hincrbyfloat('hash', 2, 1.3);
  229.      print_r($redis->hgetall('hash'));echo '<br>';
  230.  
  231.      //结果
  232.      // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
  233.      // Array ( [1] => 1 [2] => 2 [3] => 3 [5] => 5 )
  234.      // 1
  235.      // bool(false)
  236.      // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
  237.      // Array ( [1] => 2 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
  238.      // Array ( [1] => 2 [2] => 3.3 [3] => 3 [4] => 4 [5] => 5 ) 

  239.  Set(集合):


  240. <?php
  241.      //实例化redis
  242.      $redis = new Redis();
  243.      //连接
  244.      $redis->connect('127.0.0.1', 6379);
  245.      //集合
  246.      // 添加一个元素
  247.      echo $redis->sadd('set', 'cat');echo '<br>';
  248.      echo $redis->sadd('set', 'cat');echo '<br>';
  249.      echo $redis->sadd('set', 'dog');echo '<br>';
  250.      echo $redis->sadd('set', 'rabbit');echo '<br>';
  251.      echo $redis->sadd('set', 'bear');echo '<br>';
  252.      echo $redis->sadd('set', 'horse');echo '<br>';
  253.  
  254.      // 查看集合中所有的元素
  255.      $set = $redis->smembers('set');
  256.      print_r($set);echo '<br>';
  257.  
  258.      //删除集合中的value
  259.      echo $redis->srem('set', 'cat');echo '<br>';
  260.      var_dump($redis->srem('set', 'bird'));echo '<br>';
  261.  
  262.      $set = $redis->smembers('set');
  263.      print_r($set);echo '<br>';
  264.  
  265.      //判断元素是否是set的成员
  266.      var_dump($redis->sismember('set', 'dog'));echo '<br>';
  267.      var_dump($redis->sismember('set', 'bird'));echo '<br>';
  268.  
  269.      //查看集合中成员的数量
  270.      echo $redis->scard('set');echo '<br>';
  271.  
  272.      //移除并返回集合中的一个随机元素(返回被移除的元素)
  273.      echo $redis->spop('set');echo '<br>';
  274.  
  275.      print_r($redis->smembers('set'));echo '<br>';
  276.  
  277.      // 结果
  278.      // 1
  279.      // 0
  280.      // 1
  281.      // 1
  282.      // 1
  283.      // 1
  284.      // Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )
  285.      // 1
  286.      // int(0)
  287.      // Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )
  288.      // bool(true)
  289.      // bool(false)
  290.      // 4
  291.      // bear
  292.      // Array ( [0] => dog [1] => rabbit [2] => horse ) 


  293.  <?php
  294.      //实例化redis
  295.      $redis = new Redis();
  296.      //连接
  297.      $redis->connect('127.0.0.1', 6379);
  298.      //集合
  299.      $redis->sadd('set', 'horse');
  300.      $redis->sadd('set', 'cat');
  301.      $redis->sadd('set', 'dog');
  302.      $redis->sadd('set', 'bird');
  303.      $redis->sadd('set2', 'fish');
  304.      $redis->sadd('set2', 'dog');
  305.      $redis->sadd('set2', 'bird');
  306.  
  307.      print_r($redis->smembers('set'));echo '<br>';
  308.      print_r($redis->smembers('set2'));echo '<br>';
  309.  
  310.      //返回集合的交集
  311.      print_r($redis->sinter('set', 'set2'));echo '<br>';
  312.  
  313.      //执行交集操作 并结果放到一个集合中
  314.      $redis->sinterstore('output', 'set', 'set2');
  315.      print_r($redis->smembers('output'));echo '<br>';
  316.  
  317.      //返回集合的并集
  318.      print_r($redis->sunion('set', 'set2'));echo '<br>';
  319.  
  320.      //执行并集操作 并结果放到一个集合中
  321.      $redis->sunionstore('output', 'set', 'set2');
  322.      print_r($redis->smembers('output'));echo '<br>';
  323.  
  324.      //返回集合的差集
  325.      print_r($redis->sdiff('set', 'set2'));echo '<br>';
  326.  
  327.      //执行差集操作 并结果放到一个集合中
  328.      $redis->sdiffstore('output', 'set', 'set2');
  329.      print_r($redis->smembers('output'));echo '<br>';
  330.  
  331.      // 结果
  332.      // Array ( [0] => cat [1] => dog [2] => bird [3] => horse )
  333.      // Array ( [0] => bird [1] => dog [2] => fish )
  334.      // Array ( [0] => bird [1] => dog )
  335.      // Array ( [0] => dog [1] => bird )
  336.      // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )
  337.      // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )
  338.      // Array ( [0] => horse [1] => cat )
  339.      // Array ( [0] => horse [1] => cat ) 

  340. Sorted Set(有序集合):


  341. <?php
  342.      //实例化redis
  343.      $redis = new Redis();
  344.      //连接
  345.      $redis->connect('127.0.0.1', 6379);
  346.      //有序集合
  347.      //添加元素
  348.      echo $redis->zadd('set', 1, 'cat');echo '<br>';
  349.      echo $redis->zadd('set', 2, 'dog');echo '<br>';
  350.      echo $redis->zadd('set', 3, 'fish');echo '<br>';
  351.      echo $redis->zadd('set', 4, 'dog');echo '<br>';
  352.      echo $redis->zadd('set', 4, 'bird');echo '<br>';
  353.      
  354.      //返回集合中的所有元素
  355.      print_r($redis->zrange('set', 0, -1));echo '<br>';
  356.      print_r($redis->zrange('set', 0, -1, true));echo '<br>';
  357.  
  358.      //返回元素的score值
  359.      echo $redis->zscore('set', 'dog');echo '<br>';
  360.  
  361.      //返回存储的个数
  362.      echo $redis->zcard('set');echo '<br>';
  363.  
  364.      //删除指定成员
  365.      $redis->zrem('set', 'cat');
  366.      print_r($redis->zrange('set', 0, -1));echo '<br>';
  367.  
  368.      //返回集合中介于min和max之间的值的个数
  369.      print_r($redis->zcount('set', 3, 5));echo '<br>';
  370.  
  371.      //返回有序集合中score介于min和max之间的值
  372.      print_r($redis->zrangebyscore('set', 3, 5));echo '<br>';
  373.      print_r($redis->zrangebyscore('set', 3, 5, ['withscores'=>true]));echo '<br>';
  374.  
  375.      //返回集合中指定区间内所有的值
  376.      print_r($redis->zrevrange('set', 1, 2));echo '<br>';
  377.      print_r($redis->zrevrange('set', 1, 2, true));echo '<br>';
  378.  
  379.  
  380.      //有序集合中指定值的socre增加
  381.      echo $redis->zscore('set', 'dog');echo '<br>';
  382.      $redis->zincrby('set', 2, 'dog');
  383.      echo $redis->zscore('set', 'dog');echo '<br>';
  384.  
  385.      //移除score值介于min和max之间的元素
  386.      print_r($redis->zrange('set', 0, -1, true));echo '<br>';
  387.      print_r($redis->zremrangebyscore('set', 3, 4));echo '<br>';
  388.      print_r($redis->zrange('set', 0, -1, true));echo '<br>';
  389.  
  390.      //结果
  391.      // 1
  392.      // 0
  393.      // 0
  394.      // 0
  395.      // 0
  396.      // Array ( [0] => cat [1] => fish [2] => bird [3] => dog )
  397.      // Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )
  398.      // 4
  399.      // 4
  400.      // Array ( [0] => fish [1] => bird [2] => dog )
  401.      // 3
  402.      // Array ( [0] => fish [1] => bird [2] => dog )
  403.      // Array ( [fish] => 3 [bird] => 4 [dog] => 4 )
  404.      // Array ( [0] => bird [1] => fish )
  405.      // Array ( [bird] => 4 [fish] => 3 )
  406.      // 4
  407.      // 6
  408.      // Array ( [fish] => 3 [bird] => 4 [dog] => 6 )
  409.      // 2
  410.      // Array ( [dog] => 6 ) 
  411. 复制代码

www.phpzy.comtrue/php/5773.htmlTechArticlePHP操作redis,phpredis Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、 Key - Value 数据库,并提供多种语言的 API 。 Redis 支持的数据类型有   Stirng (字...

相关文章

相关频道:

PHP之友评论

今天推荐