30个php操作redis常用方法代码例子 |
本文标签:php,操作redis redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了 。查个东西搜半天,下面整理一下php处理redis的例子,个人觉得常用一些例子 。下面的例子都是基于php-redis这个扩展的 。 1,connect 描述:实例连接到一个Redis. 示例: 复制代码 代码如下: <?php $redis = new redis(); $result = $redis->connect(127.0.0.1, 6379); var_dump($result); //结果:bool(true) ?> 2,set 复制代码 代码如下: <?php $redis = new redis(); $redis->connect(127.0.0.1, 6379); $result = $redis->set(test,"11111111111"); var_dump($result); //结果:bool(true) ?> 3,get 描述:获取有关指定键的值 复制代码 代码如下: <?php $redis = new redis(); $redis->connect(127.0.0.1, 6379); $result = $redis->get(test); var_dump($result); //结果:string(11) "11111111111" ?> 4,delete
复制代码 代码如下: <?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) ?> 5,setnx 描述:如果在数据库中不存在该键,设置关键值参数 范例: 复制代码 代码如下: <?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 ?> 6,exists 描述:验证指定的键是否存在 复制代码 代码如下: <?php $redis = new redis(); $redis->connect(127.0.0.1, 6379); $redis->set(test,"1111111111111"); var_dump($redis->exists(test)); //结果:bool(true) ?> 7,incr 描述:数字递增存储键值键. 复制代码 代码如下: <?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) ?> 8,decr 描述:数字递减存储键值 。 复制代码 代码如下: <?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) ?> 9,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 ) ?> 10,lpush 描述:由列表头部添加字符串值 。如果不存在该键则创建该列表 。如果该键存在,而且不是一个列表,返回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) ?> 11,rpush 描述:由列表尾部添加字符串值 。如果不存在该键则创建该列表 。如果该键存在,而且不是一个列表,返回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) ?> 12,lpop 描述:返回和移除列表的第一个元素 复制代码 代码如下: <?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" ?> 13,lsize,llen 描述:返回的列表的长度 。如果列表不存在或为空,该命令返回0 。如果该键不是列表,该命令返回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) ?> 14,lget 描述:返回指定键存储在列表中指定的元素 。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回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" ?> 15,lset 描述:为列表指定的索引赋新的值,若不存在该索引返回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" ?> 16,lgetrange 描述: 复制代码 代码如下: <?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 ) ?> 17,lremove 描述:从列表中从头部开始移除count个匹配的值 。如果count为零,所有匹配的元素都被删除 。如果count是负数,内容从尾部开始删除 。 复制代码 代码如下: <?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 ) ?> 18,sadd 描述:为一个Key添加一个值 。如果这个值已经在这个Key中,则返回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 ) ?> 19,sremove 描述:删除Key中指定的value值 复制代码 代码如下: <?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 ) ?> 20,smove 描述:将Key1中的value移动到Key2中 复制代码 代码如下: <?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 ) ?> 21,scontains 描述:检查集合中是否存在指定的值 。 复制代码 代码如下: <?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) ?> 22,ssize 描述:返回集合中存储值的数量 复制代码 代码如下: <?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 ?> 23,spop 描述:随机移除并返回key中的一个值 复制代码 代码如下: <?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" ?> 24,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->sinter("test","test1")); //结果:array(1) { [0]=> string(3) "111" } ?> 25,sinterstore 描述:执行sInter命令并把结果储存到新建的变量中 。 复制代码 代码如下: <?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" } ?> 26,sunion 描述: 复制代码 代码如下: <?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 ) ?> 27,sunionstore 描述:执行sunion命令并把结果储存到新建的变量中 。 复制代码 代码如下: <?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 ) ?> 28,sdiff 描述:返回第一个集合中存在并在其他所有集合中不存在的结果 复制代码 代码如下: <?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 ) ?> 29,sdiffstore 描述:执行sdiff命令并把结果储存到新建的变量中 。 复制代码 代码如下: <?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 ) ?> 30,smembers, sgetmembers 描述: 复制代码 代码如下: <?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 ) ?> php-redis当中,有很多不同名字,但是功能一样的函数,例如:lrem和lremove,这里就不例举了 。 |