zoukankan      html  css  js  c++  java
  • 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(字符串):

      // 设置一个字符串的值
        $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 // 6 48 // mysql 49 // mysql 50 // 1 51 // 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 // 1 55 // 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中所有的keys
    19     $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不存在则返回false
    34     echo $redis->hdel('hash', 'dog');echo '<br>';
    35     var_dump($redis->hdel('hash', 'rabbit'));echo '<br>';
    36 
    37     // 结果
    38     // 1
    39     // 0
    40     // 0
    41     // 1
    42     // 1
    43     // 1
    44     // cat1
    45     // 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     // 4
    49     // 1
    50     // 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     // 1
    35     // 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     //删除集合中的value
    20     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     // 1
    40     // 0
    41     // 1
    42     // 1
    43     // 1
    44     // 1
    45     // Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )
    46     // 1
    47     // int(0)
    48     // Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )
    49     // bool(true)
    50     // bool(false)
    51     // 4
    52     // bear
    53     // 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     // 1
    52     // 0
    53     // 0
    54     // 0
    55     // 0
    56     // Array ( [0] => cat [1] => fish [2] => bird [3] => dog )
    57     // Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )
    58     // 4
    59     // 4
    60     // Array ( [0] => fish [1] => bird [2] => dog )
    61     // 3
    62     // 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     // 4
    67     // 6
    68     // Array ( [fish] => 3 [bird] => 4 [dog] => 6 )
    69     // 2
    70     // Array ( [dog] => 6 ) 
  • 相关阅读:
    HBase with MapReduce (MultiTable Read)
    HBase with MapReduce (SummaryToFile)
    HBase with MapReduce (Summary)
    HBase with MapReduce (Read and Write)
    HBase with MapReduce (Only Read)
    Hbase中的BloomFilter(布隆过滤器)
    HBase的快照技术
    How To Use Hbase Bulk Loading
    Cloudera-Manager修改集群的IP
    Java中的HashSet和TreeSet
  • 原文地址:https://www.cnblogs.com/shixiuxian/p/8443719.html
Copyright © 2011-2022 走看看