30个php操作redis常用方法代码例子

1背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcache使用,这是大才小用,这儿有30个方法来使用redis,值得了解。 2这篇文章主要介绍了30个php操作redis常用方法代码例子,本文其实不止30个方法,可以操作string类型、list类型和set类型的数据,需要的朋友可以参考下 3redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了。查个东西搜半天,下面整理一下php处理redis的例子,个人觉得常用一些例子。下面的例子都是基于php-redis这个扩展的。 41,connect 5描述:实例连接到一个Redis. 6参数:host: string,port: int 7返回值:BOOL 成功返回:TRUE;失败返回:FALSE 8示例: 9 10<?php 11$redis = new redis(); 12$result = $redis->connect('127.0.0.1', 6379); 13var_dump($result); //结果:bool(true) 14?> 152set 16描述:设置key和value的值 17参数:Key Value 18返回值:BOOL 成功返回:TRUE;失败返回:FALSE 19示例: 20 21<?php 22$redis = new redis(); 23$redis->connect('127.0.0.1', 6379); 24$result = $redis->set('test',"11111111111"); 25var_dump($result); //结果:bool(true) 26?> 273get 28描述:获取有关指定键的值 29参数:key 30返回值:string或BOOL 如果键不存在,则返回 FALSE。否则,返回指定键对应的value值。 31范例: 32 33<?php 34$redis = new redis(); 35$redis->connect('127.0.0.1', 6379); 36$result = $redis->get('test'); 37var_dump($result); //结果:string(11) "11111111111" 38?> 394delete 40 41描述:删除指定的键 42参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 … keyN 43返回值:删除的项数 44范例: 45 46<?php 47$redis = new redis(); 48$redis->connect('127.0.0.1', 6379); 49$redis->set('test',"1111111111111"); 50echo $redis->get('test'); //结果:1111111111111 51$redis->delete('test'); 52var_dump($redis->get('test')); //结果:bool(false) 53?> 545,setnx 55描述:如果在数据库中不存在该键,设置关键值参数 56参数:key value 57返回值:BOOL 成功返回:TRUE;失败返回:FALSE 58范例: 59 60<?php 61$redis = new redis(); 62$redis->connect('127.0.0.1', 6379); 63$redis->set('test',"1111111111111"); 64$redis->setnx('test',"22222222"); 65echo $redis->get('test'); //结果:1111111111111 66$redis->delete('test'); 67$redis->setnx('test',"22222222"); 68echo $redis->get('test'); //结果:22222222 69?> 706,exists 71描述:验证指定的键是否存在 72参数key 73返回值:Bool 成功返回:TRUE;失败返回:FALSE 74范例: 75 76<?php 77$redis = new redis(); 78$redis->connect('127.0.0.1', 6379); 79$redis->set('test',"1111111111111"); 80var_dump($redis->exists('test')); //结果:bool(true) 81?> 827,incr 83描述:数字递增存储键值键. 84参数:key value:将被添加到键的值 85返回值:INT the new value 86实例: 87 88<?php 89$redis = new redis(); 90$redis->connect('127.0.0.1', 6379); 91$redis->set('test',"123"); 92var_dump($redis->incr("test")); //结果:int(124) 93var_dump($redis->incr("test")); //结果:int(125) 94?> 95 968,decr 97描述:数字递减存储键值。 98参数:key value:将被添加到键的值 99返回值:INT the new value 100实例: 101 102<?php 103$redis = new redis(); 104$redis->connect('127.0.0.1', 6379); 105$redis->set('test',"123"); 106var_dump($redis->decr("test")); //结果:int(122) 107var_dump($redis->decr("test")); //结果:int(121) 108?> 1099,getMultiple 110描述:取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为假 111参数:其中包含键值的列表数组 112返回值:返回包含所有键的值的数组 113实例: 114 115<?php 116$redis = new redis(); 117$redis->connect('127.0.0.1', 6379); 118$redis->set('test1',"1"); 119$redis->set('test2',"2"); 120$result = $redis->getMultiple(array('test1','test2')); 121print_r($result); //结果:Array ( [0] => 1 [1] => 2 ) 122?> 123 12410,lpush 125描述:由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE126参数:key,value 127返回值:成功返回数组长度,失败false 128实例: 129 130<?php 131$redis = new redis(); 132$redis->connect('127.0.0.1', 6379); 133$redis->delete('test'); 134var_dump($redis->lpush("test","111")); //结果:int(1) 135var_dump($redis->lpush("test","222")); //结果:int(2) 136?> 137 13811,rpush 139描述:由列表尾部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE140参数:key,value 141返回值:成功返回数组长度,失败false 142范例: 143 144<?php 145$redis = new redis(); 146$redis->connect('127.0.0.1', 6379); 147$redis->delete('test'); 148var_dump($redis->lpush("test","111")); //结果:int(1) 149var_dump($redis->lpush("test","222")); //结果:int(2) 150var_dump($redis->rpush("test","333")); //结果:int(3) 151var_dump($redis->rpush("test","444")); //结果:int(4) 152?> 153 15412,lpop 155描述:返回和移除列表的第一个元素 156参数:key 157返回值:成功返回第一个元素的值 ,失败返回false 158范例: 159 160<?php 161$redis = new redis(); 162$redis->connect('127.0.0.1', 6379); 163$redis->delete('test'); 164$redis->lpush("test","111"); 165$redis->lpush("test","222"); 166$redis->rpush("test","333"); 167$redis->rpush("test","444"); 168var_dump($redis->lpop("test")); //结果:string(3) "222" 169?> 170 17113,lsize,llen 172描述:返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE173参数:Key 174返回值:成功返回数组长度,失败false 175范例: 176 177<?php 178$redis = new redis(); 179$redis->connect('127.0.0.1', 6379); 180$redis->delete('test'); 181$redis->lpush("test","111"); 182$redis->lpush("test","222"); 183$redis->rpush("test","333"); 184$redis->rpush("test","444"); 185var_dump($redis->lsize("test")); //结果:int(4) 186?> 187 18814,lget 189描述:返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE190参数:key index 191返回值:成功返回指定元素的值,失败false 192范例: 193 194<?php 195$redis = new redis(); 196$redis->connect('127.0.0.1', 6379); 197$redis->delete('test'); 198$redis->lpush("test","111"); 199$redis->lpush("test","222"); 200$redis->rpush("test","333"); 201$redis->rpush("test","444"); 202var_dump($redis->lget("test",3)); //结果:string(3) "444" 203?> 204 20515,lset 206描述:为列表指定的索引赋新的值,若不存在该索引返回false. 207参数:key index value 208返回值:成功返回true,失败false 209范例: 210 211<?php 212$redis = new redis(); 213$redis->connect('127.0.0.1', 6379); 214$redis->delete('test'); 215$redis->lpush("test","111"); 216$redis->lpush("test","222"); 217var_dump($redis->lget("test",1)); //结果:string(3) "111" 218var_dump($redis->lset("test",1,"333")); //结果:bool(true) 219var_dump($redis->lget("test",1)); //结果:string(3) "333" 220?> 221 22216,lgetrange 223描述: 224返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二… 225参数:key start end 226返回值:成功返回查找的值,失败false 227范例: 228 229<?php 230$redis = new redis(); 231$redis->connect('127.0.0.1', 6379); 232$redis->delete('test'); 233$redis->lpush("test","111"); 234$redis->lpush("test","222"); 235print_r($redis->lgetrange("test",0,-1)); //结果:Array ( [0] => 222 [1] => 111 ) 236?> 237 23817,lremove 239描述:从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。 240参数:key count value 241返回值:成功返回删除的个数,失败false 242范例: 243 244<?php 245$redis = new redis(); 246$redis->connect('127.0.0.1', 6379); 247$redis->delete('test'); 248$redis->lpush('test','a'); 249$redis->lpush('test','b'); 250$redis->lpush('test','c'); 251$redis->rpush('test','a'); 252print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a ) 253var_dump($redis->lremove('test','a',2)); //结果:int(2) 254print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b ) 255?> 256 25718,sadd 258描述:为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE259参数:key value 260返回值:成功返回true,失败false 261范例: 262 263<?php 264$redis = new redis(); 265$redis->connect('127.0.0.1', 6379); 266$redis->delete('test'); 267var_dump($redis->sadd('test','111')); //结果:bool(true) 268var_dump($redis->sadd('test','333')); //结果:bool(true) 269print_r($redis->sort('test')); //结果:Array ( [0] => 111 [1] => 333 ) 270?> 271 27219,sremove 273描述:删除Key中指定的value值 274参数:key member 275返回值:true or false 276范例: 277 278<?php 279$redis = new redis(); 280$redis->connect('127.0.0.1', 6379); 281$redis->delete('test'); 282$redis->sadd('test','111'); 283$redis->sadd('test','333'); 284$redis->sremove('test','111'); 285print_r($redis->sort('test')); //结果:Array ( [0] => 333 ) 286?> 287 28820,smove 289描述:将Key1中的value移动到Key2中 290参数:srcKey dstKey member 291返回值:true or false 292范例 293 294<?php 295$redis = new redis(); 296$redis->connect('127.0.0.1', 6379); 297$redis->delete('test'); 298$redis->delete('test1'); 299$redis->sadd('test','111'); 300$redis->sadd('test','333'); 301$redis->sadd('test1','222'); 302$redis->sadd('test1','444'); 303$redis->smove('test',"test1",'111'); 304print_r($redis->sort('test1')); //结果:Array ( [0] => 111 [1] => 222 [2] => 444 ) 305?> 306 30721,scontains 308描述:检查集合中是否存在指定的值。 309参数:key value 310返回值:true or false 311范例: 312 313<?php 314$redis = new redis(); 315$redis->connect('127.0.0.1', 6379); 316$redis->delete('test'); 317$redis->sadd('test','111'); 318$redis->sadd('test','112'); 319$redis->sadd('test','113'); 320var_dump($redis->scontains('test', '111')); //结果:bool(true) 321?> 322 32322,ssize 324描述:返回集合中存储值的数量 325参数:key 326返回值:成功返回数组个数,失败0 327范例: 328 329<?php 330$redis = new redis(); 331$redis->connect('127.0.0.1', 6379); 332$redis->delete('test'); 333$redis->sadd('test','111'); 334$redis->sadd('test','112'); 335echo $redis->ssize('test'); //结果:2 336?> 337 33823,spop 339描述:随机移除并返回key中的一个值 340参数:key 341返回值:成功返回删除的值,失败false 342范例: 343 344<?php 345$redis = new redis(); 346$redis->connect('127.0.0.1', 6379); 347$redis->delete('test'); 348$redis->sadd("test","111"); 349$redis->sadd("test","222"); 350$redis->sadd("test","333"); 351var_dump($redis->spop("test")); //结果:string(3) "333" 352?> 353 35424,sinter 355描述:返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE356参数:key1, key2, keyN 357返回值:成功返回数组交集,失败false 358范例: 359 360<?php 361$redis = new redis(); 362$redis->connect('127.0.0.1', 6379); 363$redis->delete('test'); 364$redis->sadd("test","111"); 365$redis->sadd("test","222"); 366$redis->sadd("test","333"); 367$redis->sadd("test1","111"); 368$redis->sadd("test1","444"); 369var_dump($redis->sinter("test","test1")); //结果:array(1) { [0]=> string(3) "111" } 370?> 371 37225,sinterstore 373描述:执行sInter命令并把结果储存到新建的变量中。 374参数: 375Key: dstkey, the key to store the diff into. 376Keys: key1, key2… keyN. key1..keyN are intersected as in sInter. 377返回值:成功返回,交集的个数,失败false 378范例: 379 380<?php 381$redis = new redis(); 382$redis->connect('127.0.0.1', 6379); 383$redis->delete('test'); 384$redis->sadd("test","111"); 385$redis->sadd("test","222"); 386$redis->sadd("test","333"); 387$redis->sadd("test1","111"); 388$redis->sadd("test1","444"); 389var_dump($redis->sinterstore('new',"test","test1")); //结果:int(1) 390var_dump($redis->smembers('new')); //结果:array(1) { [0]=> string(3) "111" } 391?> 392 39326,sunion 394描述: 395返回一个所有指定键的并集 396参数: 397Keys: key1, key2,, keyN 398返回值:成功返回合并后的集,失败false 399范例: 400 401<?php 402$redis = new redis(); 403$redis->connect('127.0.0.1', 6379); 404$redis->delete('test'); 405$redis->sadd("test","111"); 406$redis->sadd("test","222"); 407$redis->sadd("test","333"); 408$redis->sadd("test1","111"); 409$redis->sadd("test1","444"); 410print_r($redis->sunion("test","test1")); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 ) 411?> 412 41327,sunionstore 414描述:执行sunion命令并把结果储存到新建的变量中。 415参数: 416Key: dstkey, the key to store the diff into. 417Keys: key1, key2… keyN. key1..keyN are intersected as in sInter. 418返回值:成功返回,交集的个数,失败false 419范例: 420 421<?php 422$redis = new redis(); 423$redis->connect('127.0.0.1', 6379); 424$redis->delete('test'); 425$redis->sadd("test","111"); 426$redis->sadd("test","222"); 427$redis->sadd("test","333"); 428$redis->sadd("test1","111"); 429$redis->sadd("test1","444"); 430var_dump($redis->sinterstore('new',"test","test1")); //结果:int(4) 431print_r($redis->smembers('new')); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 ) 432?> 433 43428,sdiff 435描述:返回第一个集合中存在并在其他所有集合中不存在的结果 436参数:Keys: key1, key2,, keyN: Any number of keys corresponding to sets in redis. 437返回值:成功返回数组,失败false 438范例: 439 440<?php 441$redis = new redis(); 442$redis->connect('127.0.0.1', 6379); 443$redis->delete('test'); 444$redis->sadd("test","111"); 445$redis->sadd("test","222"); 446$redis->sadd("test","333"); 447$redis->sadd("test1","111"); 448$redis->sadd("test1","444"); 449print_r($redis->sdiff("test","test1")); //结果:Array ( [0] => 222 [1] => 333 ) 450?> 451 45229,sdiffstore 453描述:执行sdiff命令并把结果储存到新建的变量中。 454参数: 455Key: dstkey, the key to store the diff into. 456Keys: key1, key2,, keyN: Any number of keys corresponding to sets in redis 457返回值:成功返回数字,失败false 458范例: 459 460<?php 461$redis = new redis(); 462$redis->connect('127.0.0.1', 6379); 463$redis->delete('test'); 464$redis->sadd("test","111"); 465$redis->sadd("test","222"); 466$redis->sadd("test","333"); 467$redis->sadd("test1","111"); 468$redis->sadd("test1","444"); 469var_dump($redis->sdiffstore('new',"test","test1")); //结果:int(2) 470print_r($redis->smembers('new')); //结果:Array ( [0] => 222 [1] => 333 ) 471?> 472 47330,smembers, sgetmembers 474描述: 475返回集合的内容 476参数:Key: key 477返回值:An array of elements, the contents of the set. 478范例: 479 480<?php 481$redis = new redis(); 482$redis->connect('127.0.0.1', 6379); 483$redis->delete('test'); 484$redis->sadd("test","111"); 485$redis->sadd("test","222"); 486print_r($redis->smembers('test')); //结果:Array ( [0] => 111 [1] => 222 ) 487?> 488 489php-redis当中,有很多不同名字,但是功能一样的函数,例如:lrem和lremove,这里就不例举
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )