图集1/2

正文 16107字数 809,556阅读


PHP操作redis

Redis 安装

Window 下安装
下载地址:https://github.com/dmajkic/redis/downloads

下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids

打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行
redis-server.exe redis.conf
Run code
Cut to clipboard
    。Windows PowerShell
    ./redis-server.exe redis.conf
    Run code
    Cut to clipboard
      前面加 ./

      如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

      这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。

      切换到redis目录下运行
      redis-cli.exe -h 127.0.0.1 -p 6379
      Run code
      Cut to clipboard
        Windows PowerShell 前面加 ./ 。
        设置键值对 set myKey abc
        取出键值对 get myKey

        Linux 下安装
        下载地址:http://www.redis.net.cn/download/,下载最新文档版本。

        本教程使用的最新文档版本为 2.8.17,下载并安装:
        $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make
        Run code
        Cut to clipboard

          make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli

          下面启动redis服务.
          $ ./redis-server
          Run code
          Cut to clipboard

            注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。
            $ ./redis-server redis.conf
            Run code
            Cut to clipboard

              redis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。

              启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了。 比如:
              $ ./redis-cli redis> set foo bar OK redis> get foo "bar"
              Run code
              Cut to clipboard


                Ubuntu 下安装
                在 Ubuntu 系统安装 Redi 可以使用以下命令:
                $sudo apt-get update $sudo apt-get install redis-server
                Run code
                Cut to clipboard

                  启动 Redis
                  $redis-server
                  Run code
                  Cut to clipboard

                    查看 redis 是否启动?
                    $redis-cli
                    Run code
                    Cut to clipboard

                      以上命令将打开以下终端:
                      redis 127.0.0.1:6379>
                      Run code
                      Cut to clipboard

                        127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
                        redis 127.0.0.1:6379> ping PONG
                        Run code
                        Cut to clipboard

                          以上说明我们已经成功安装了redis。
                          Redis 安装_redis教程

                          php处理redis

                          connect 实例连接到一个Redis
                          描述:实例连接到一个Redis.
                          参数:host: string,port: int
                          返回值:BOOL 成功返回:TRUE;失败返回:FALSE
                          示例:
                          <?php $redis = new redis(); $result = $redis->connect('127.0.0.1', 6379); var_dump($result); //结果:bool(true)
                          Run code
                          Cut to clipboard


                            set 设置key和value的值
                            描述:设置key和value的值
                            参数:Key Value
                            返回值:BOOL 成功返回:TRUE;失败返回:FALSE
                            示例:
                            <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $result = $redis->set('test',"11111111111"); var_dump($result); //结果:bool(true)
                            Run code
                            Cut to clipboard


                              get 获取有关指定键的值
                              描述:获取有关指定键的值
                              参数:key
                              返回值:string或BOOL 如果键不存在,则返回 FALSE。否则,返回指定键对应的value值。
                              范例:
                              <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $result = $redis->get('test'); var_dump($result); //结果:string(11) "11111111111"
                              Run code
                              Cut to clipboard


                                delete 删除指定的键
                                描述:删除指定的键
                                参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 … keyN
                                返回值:删除的项数
                                范例:
                                <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test',"1111111111111"); echo $redis->get('test'); //结果:1111111111111 $redis->delete('test'); var_dump($redis->get('test')); //结果:bool(false)
                                Run code
                                Cut to clipboard


                                  setnx 如果在数据库中不存在该键,设置关键值参数
                                  描述:如果在数据库中不存在该键,设置关键值参数
                                  参数:key value
                                  返回值:BOOL 成功返回:TRUE;失败返回:FALSE
                                  范例:
                                  <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test',"1111111111111"); $redis->setnx('test',"22222222"); echo $redis->get('test'); //结果:1111111111111 $redis->delete('test'); $redis->setnx('test',"22222222"); echo $redis->get('test'); //结果:22222222
                                  Run code
                                  Cut to clipboard


                                    exists 验证指定的键是否存在
                                    描述:验证指定的键是否存在
                                    参数key
                                    返回值:Bool 成功返回:TRUE;失败返回:FALSE
                                    范例:
                                    <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test',"1111111111111"); var_dump($redis->exists('test')); //结果:bool(true)
                                    Run code
                                    Cut to clipboard


                                      incr 数字递增存储键值键
                                      描述:数字递增存储键值键.
                                      参数:key value:将被添加到键的值
                                      返回值:INT the new value
                                      范例:
                                      <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test',"123"); var_dump($redis->incr("test")); //结果:int(124) var_dump($redis->incr("test")); //结果:int(125)
                                      Run code
                                      Cut to clipboard


                                        decr 数字递减存储键值
                                        描述:数字递减存储键值。
                                        参数:key value:将被添加到键的值
                                        返回值:INT the new value
                                        范例:
                                        <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test',"123"); var_dump($redis->decr("test")); //结果:int(122) var_dump($redis->decr("test")); //结果:int(121)
                                        Run code
                                        Cut to clipboard


                                          getMultiple 取得所有指定键的值
                                          描述:取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为假
                                          参数:其中包含键值的列表数组
                                          返回值:返回包含所有键的值的数组
                                          范例:
                                          <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test1',"1"); $redis->set('test2',"2"); $result = $redis->getMultiple(array('test1','test2')); print_r($result); //结果:Array ( [0] => 1 [1] => 2 )
                                          Run code
                                          Cut to clipboard


                                            lpush 由列表头部添加字符串值
                                            描述:由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。
                                            参数:key,value
                                            返回值:成功返回数组长度,失败false
                                            范例:
                                            <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); var_dump($redis->lpush("test","111")); //结果:int(1) var_dump($redis->lpush("test","222")); //结果:int(2)
                                            Run code
                                            Cut to clipboard


                                              rpush 由列表尾部添加字符串值
                                              描述:由列表尾部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。
                                              参数:key,value
                                              返回值:成功返回数组长度,失败false
                                              范例:
                                              <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); var_dump($redis->lpush("test","111")); //结果:int(1) var_dump($redis->lpush("test","222")); //结果:int(2) var_dump($redis->rpush("test","333")); //结果:int(3) var_dump($redis->rpush("test","444")); //结果:int(4)
                                              Run code
                                              Cut to clipboard


                                                lpop 返回和移除列表的第一个元素
                                                描述:返回和移除列表的第一个元素
                                                参数:key
                                                返回值:成功返回第一个元素的值 ,失败返回false
                                                范例:
                                                <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->lpush("test","111"); $redis->lpush("test","222"); $redis->rpush("test","333"); $redis->rpush("test","444"); var_dump($redis->lpop("test")); //结果:string(3) "222"
                                                Run code
                                                Cut to clipboard


                                                  lsize llen 返回的列表的长度
                                                  描述:返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE
                                                  参数:Key
                                                  返回值:成功返回数组长度,失败false
                                                  范例:
                                                  <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->lpush("test","111"); $redis->lpush("test","222"); $redis->rpush("test","333"); $redis->rpush("test","444"); var_dump($redis->lsize("test")); //结果:int(4)
                                                  Run code
                                                  Cut to clipboard


                                                    lget 返回指定键存储在列表中指定的元素
                                                    描述:返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE。
                                                    参数:key index
                                                    返回值:成功返回指定元素的值,失败false
                                                    范例:
                                                    <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->lpush("test","111"); $redis->lpush("test","222"); $redis->rpush("test","333"); $redis->rpush("test","444"); var_dump($redis->lget("test",3)); //结果:string(3) "444"
                                                    Run code
                                                    Cut to clipboard


                                                      lset 为列表指定的索引赋新的值
                                                      描述:为列表指定的索引赋新的值,若不存在该索引返回false.
                                                      参数:key index value
                                                      返回值:成功返回true,失败false
                                                      范例:
                                                      <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->lpush("test","111"); $redis->lpush("test","222"); var_dump($redis->lget("test",1)); //结果:string(3) "111" var_dump($redis->lset("test",1,"333")); //结果:bool(true) var_dump($redis->lget("test",1)); //结果:string(3) "333"
                                                      Run code
                                                      Cut to clipboard


                                                        lgetrange 返回在该区域中的指定键列表中开始到结束存储的指定元素
                                                        描述:返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)。0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二…
                                                        参数:key start end
                                                        返回值:成功返回查找的值,失败false
                                                        范例:
                                                        <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->lpush("test","111"); $redis->lpush("test","222"); print_r($redis->lgetrange("test",0,-1)); //结果:Array ( [0] => 222 [1] => 111 )
                                                        Run code
                                                        Cut to clipboard


                                                          lremove 从列表中从头部开始移除count个匹配的值
                                                          描述:从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。
                                                          参数:key count value
                                                          返回值:成功返回删除的个数,失败false
                                                          范例:
                                                          <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->lpush('test','a'); $redis->lpush('test','b'); $redis->lpush('test','c'); $redis->rpush('test','a'); print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a ) var_dump($redis->lremove('test','a',2)); //结果:int(2) print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b )
                                                          Run code
                                                          Cut to clipboard


                                                            sadd 为一个Key添加一个值
                                                            描述:为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。
                                                            参数:key value
                                                            返回值:成功返回true,失败false
                                                            范例:
                                                            <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); var_dump($redis->sadd('test','111')); //结果:bool(true) var_dump($redis->sadd('test','333')); //结果:bool(true) print_r($redis->sort('test')); //结果:Array ( [0] => 111 [1] => 333 )
                                                            Run code
                                                            Cut to clipboard


                                                              sremove 删除Key中指定的value值
                                                              描述:删除Key中指定的value值
                                                              参数:key member
                                                              返回值:true or false
                                                              范例:
                                                              <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd('test','111'); $redis->sadd('test','333'); $redis->sremove('test','111'); print_r($redis->sort('test')); //结果:Array ( [0] => 333 )
                                                              Run code
                                                              Cut to clipboard


                                                                smove 将Key1中的value移动到Key2中
                                                                描述:将Key1中的value移动到Key2中
                                                                参数:srcKey dstKey member
                                                                返回值:true or false
                                                                范例
                                                                <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->delete('test1'); $redis->sadd('test','111'); $redis->sadd('test','333'); $redis->sadd('test1','222'); $redis->sadd('test1','444'); $redis->smove('test',"test1",'111'); print_r($redis->sort('test1')); //结果:Array ( [0] => 111 [1] => 222 [2] => 444 )
                                                                Run code
                                                                Cut to clipboard


                                                                  scontains 检查集合中是否存在指定的值
                                                                  描述:检查集合中是否存在指定的值。
                                                                  参数:key value
                                                                  返回值:true or false
                                                                  范例:
                                                                  <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd('test','111'); $redis->sadd('test','112'); $redis->sadd('test','113'); var_dump($redis->scontains('test', '111')); //结果:bool(true)
                                                                  Run code
                                                                  Cut to clipboard


                                                                    ssize 返回集合中存储值的数量
                                                                    描述:返回集合中存储值的数量
                                                                    参数:key
                                                                    返回值:成功返回数组个数,失败0
                                                                    范例:
                                                                    <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd('test','111'); $redis->sadd('test','112'); echo $redis->ssize('test'); //结果:2
                                                                    Run code
                                                                    Cut to clipboard


                                                                      spop 随机移除并返回key中的一个值
                                                                      描述:随机移除并返回key中的一个值
                                                                      参数:key
                                                                      返回值:成功返回删除的值,失败false
                                                                      范例
                                                                      <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); $redis->sadd("test","333"); var_dump($redis->spop("test")); //结果:string(3) "333"
                                                                      Run code
                                                                      Cut to clipboard


                                                                        sinter 返回一个所有指定键的交集
                                                                        描述:返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。
                                                                        参数:key1, key2, keyN
                                                                        返回值:成功返回数组交集,失败false
                                                                        范例:
                                                                        <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); $redis->sadd("test","333"); $redis->sadd("test1","111"); $redis->sadd("test1","444"); var_dump($redis->sinter("test","test1")); //结果:array(1) { [0]=> string(3) "111" }
                                                                        Run code
                                                                        Cut to clipboard


                                                                          sinterstore 执行sInter命令并把结果储存到新建的变量中
                                                                          描述:执行sInter命令并把结果储存到新建的变量中。
                                                                          参数:
                                                                          Key: dstkey, the key to store the diff into.
                                                                          Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
                                                                          返回值:成功返回,交集的个数,失败false
                                                                          范例:
                                                                          <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); $redis->sadd("test","333"); $redis->sadd("test1","111"); $redis->sadd("test1","444"); var_dump($redis->sinterstore('new',"test","test1")); //结果:int(1) var_dump($redis->smembers('new')); //结果:array(1) { [0]=> string(3) "111" }
                                                                          Run code
                                                                          Cut to clipboard


                                                                            sunion 返回一个所有指定键的并集
                                                                            描述:返回一个所有指定键的并集
                                                                            参数:Keys: key1, key2, … , keyN
                                                                            返回值:成功返回合并后的集,失败false
                                                                            范例:
                                                                            <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); $redis->sadd("test","333"); $redis->sadd("test1","111"); $redis->sadd("test1","444"); print_r($redis->sunion("test","test1")); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )
                                                                            Run code
                                                                            Cut to clipboard


                                                                              sunionstore 执行sunion命令并把结果储存到新建的变量中
                                                                              描述:执行sunion命令并把结果储存到新建的变量中。
                                                                              参数:
                                                                              Key: dstkey, the key to store the diff into.
                                                                              Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
                                                                              返回值:成功返回,交集的个数,失败false
                                                                              范例:
                                                                              <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); $redis->sadd("test","333"); $redis->sadd("test1","111"); $redis->sadd("test1","444"); var_dump($redis->sinterstore('new',"test","test1")); //结果:int(4) print_r($redis->smembers('new')); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )
                                                                              Run code
                                                                              Cut to clipboard


                                                                                sdiff 返回第一个集合中存在并在其他所有集合中不存在的结果
                                                                                描述:返回第一个集合中存在并在其他所有集合中不存在的结果
                                                                                参数:Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.
                                                                                返回值:成功返回数组,失败false
                                                                                范例:
                                                                                <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); $redis->sadd("test","333"); $redis->sadd("test1","111"); $redis->sadd("test1","444"); print_r($redis->sdiff("test","test1")); //结果:Array ( [0] => 222 [1] => 333 )
                                                                                Run code
                                                                                Cut to clipboard


                                                                                  sdiffstore 执行sdiff命令并把结果储存到新建的变量中
                                                                                  描述:执行sdiff命令并把结果储存到新建的变量中。
                                                                                  参数:
                                                                                  Key: dstkey, the key to store the diff into.
                                                                                  Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis
                                                                                  返回值:成功返回数字,失败false
                                                                                  范例:
                                                                                  <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); $redis->sadd("test","333"); $redis->sadd("test1","111"); $redis->sadd("test1","444"); var_dump($redis->sdiffstore('new',"test","test1")); //结果:int(2) print_r($redis->smembers('new')); //结果:Array ( [0] => 222 [1] => 333 )
                                                                                  Run code
                                                                                  Cut to clipboard


                                                                                    smembers sgetmembers 返回集合的内容
                                                                                    描述:返回集合的内容
                                                                                    参数:Key: key
                                                                                    返回值:An array of elements, the contents of the set.
                                                                                    范例:
                                                                                    <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $redis->delete('test'); $redis->sadd("test","111"); $redis->sadd("test","222"); print_r($redis->smembers('test')); //结果:Array ( [0] => 111 [1] => 222 )
                                                                                    Run code
                                                                                    Cut to clipboard