phpredis是redis的php的扩展,相当高效。它具有链表排序功能,这对于创建内存级别的模块业务关系非常有用。$redis=newRedis();$redis->connect('127.0.0.1',6379);$redis->auth('123456');keykey//DELkey[key...]------删除一个或多个给定的key$a=$redis->del(array('xrj','ly','fjf'));//KEYSpattern------查找匹配给定模式pattern的所有键$b=$redis->keys('*');//RANDOMKEY------从当前数据库中随机返回(不是删除)一个key$c=$redis->randomkey();//TTLkey------以秒为单位,返回给定的剩余时间toliveofthekey(TTL,timetolive)//PTTLkey------单位毫秒,返回给定key的剩余生存时间$d=$redis->ttl('bbs');//EXISTSkey------检查给定的key是否存在,存在则返回1,否则返回0$e=$redis->exists('email');//MOVEkeydb------will当前数据库的key移动到给定的数据库db$f=$redis->move('email',1);$redis->select(1);$f=$redis->keys('*');$f=$redis->move('email',0);//RENAMEkeynewkey------重命名key为newkey$g=$redis->rename('email','e-eamil.com');$g=$redis->rename('e-eamil.com','eamil');//RENAMENXkeynewkey------重命名key当且仅当newkey不存在newkey$h=$redis->renamenx('bbs','bbs1');//TYPEkey------返回key中存储的值的类型$i=$redis->type('pageview');//EXPIREkeyseconds------set为key的Timetolive,当key过期时,会自动删除//PEXPIREkeymilliseconds------设置key的生存时间,单位毫秒//EXPIREATkeytimestamp------时间命令接受的参数是UNIX时间戳,key存活到一个unix时间戳时间//PERSISTkey------去掉给定key的存活时间,转换成没有存活时间的key永不过期//SORTkey[BYpattern][LIMIToffsetcount][GETpattern[GETpattern...]][ASC|DESC][ALPHA][STOREdestination]-----返回或保存
给定list,set,ordered集合中排序的元素String(字符串)相关操作key//SETkeyvalue------将字符串值value关联到key,会覆盖$a=$redis->set('email','jiang@58haha.cn');//SETNXkeyvalue------设置值keytovalue,当且仅当key不存在时,成功返回1,不成功返回0$b=$redis->setnx('email','jiang@58haha.cn');//SETEXkey秒value------将value值与key关联起来,设置key的生存时间为秒(以秒为单位)$c=$redis->setex('name',10086,'Jiang');//PSETEXkeymillisecondsvalue------该命令类似于SETEX命令,它以毫秒为单位设置key的生存期$d=$redis->psetex('jiang',90000,'hahaha');//MSETkeyvalue[keyvalue...]------同时设置一个或多个键值对$e=$redis->mset(array('ly'=>'liyang','fjf'=>'fengjingfeng'));//MSETNX键值[键值...]------同时设置一个或多个键时间值对,当且仅当给定键不存在$f=$redis->msetnx(array('ly'=>'liyang','xrj'=>'xingrongjiang','fjf'=>'fengjingfeng'));//APPENDkeyvalue------如果key已经存在并且是字符串,APPEND命令会将value追加到key原值的末尾如果key不存在,APPEND就像执行SETkeyvalue$g=$redis->append('ly','love');//GETkey------返回key关联的字符串值,如果key不存在,则返回特殊值nil,只能使用GET处理字符串值$h=$redis->get('ly');//MGETkey[key...]------返回给定键的所有(一个或多个)值,如果给定键中不存在某个键,则该键返回特殊值nil,命令永不失败$i=$redis->mget(array('email','ly','fjf'));//GETRANGEkeystartend------返回key中字符串值的子串,以及截取范围string由start和endDecision(包括start和end)的两个偏移量决定,负偏移量表示从字符串的最后一个
开始计数,-1表示最后一个字符,-2表示倒数第二个
$j=$redis->getrange('电子邮件',0,-1);//从第一个到最后一个,相当于直接get//GETSETkeyvalue------将给定key的value设置为value,返回key的valueOldvalue(旧值)$k=$redis->getset('email','jiangzunshao@163.com');//STRLENkey------返回key中存储的字符串值的长度$l=$redis->strlen('email');//DECRkey------将key中存储的数字值减一,如果key不存在,则先将key的值初始化为0,然后执行DECR操作$m=$redis->decr('pageview');//INCRkey------将key中存储的数字值加一,如果key不存在,则key的值将先初始化为0,然后执行INCR操作为负值)$o=$redis->decrby('pageview',3);//INCRBYkeyincrement------将key中存储的值加到incrementalincrement中(可以为负值)$p=$redis->incrby('综合浏览量',6);Hash(哈希表)相关操作//HSETkeyfieldvalue------将哈希表key中field字段的值设置为value,新建并返回1,覆盖返回0$a=$redis->hset("user","jiang@58haha.cn","{'name':'jiangzunshao','age':25,'work':'php','city':'北京'}");//HSETNXkeyfieldvalue------将哈希表key中的field字段的值设置为value,当且仅当field字段不存在时。如果设置成功,返回1如果已经存在,不做任何操作,返回0$b=$redis->hsetnx("user","jiang@58haha.cn","{'name':'jiangzunshao','age':25,'work':'php','city':'北京'}");//HGETkeyfield------返回哈希表key中给定字段field的值$c=$redis->hget("user","jiang@58haha.cn");//HMSETkeyfieldvalue[fieldvalue...]------同时设置多个field-value(字段值)对到哈希表key中$d=$redis->hmset('user',array('name'=>'jiangzunshao','age'=>20));//HMGETkeyfield[field...]-----返回哈希表key中一个或多个给定字段的值$f=$redis->hmGet('user',array('name','age'));//HGETALLkey------返回哈希表key中的所有字段和值$g=$redis->hgetall('user');//HDELkeyfield[field...]------删除哈希表keyfield中一个或多个指定字段,不存在的字段将被忽略$h=$redis->hdel('user','age');//HLENkey------返回哈希表key域的个数$i=$redis->hlen('user');//HEXISTSkeyfield------检查哈希表key中是否存在给定域字段,存在则返回1,存在则返回0notexist$g=$redis->hexists('user','jiang@58haha.cn');//HINCRBYkeyfieldincrement------对哈希表key中字段field的值增加increment,可以为负$k=$redis->hincrby('user','pv',5);//HKEYSkey------返回哈希表keyAlldomains$l=$redis->hkeys('user');//HVALSkey------返回哈希表key中所有域的值$m=$redis->hvals('user');List(列表)相关操作//LPUSHkeyvalue[value...]------向列表头部插入数据$redis->lpush('dbs','mongodb-3.2');//RPUSHkeyvalue[value...]------在链表末尾插入数据$redis->rpush('dbs','redis');//LLENkey------获取list的长度$c=$redis->llen('dbs');//LPOPkey------取出并返回list的头元素$d=$redis->lpop('dbs');//RPOPkey------取出并返回列表的尾元素$e=$redis->rpop('dbs');//LRANGEkeystartstop------返回元素在列表的指定区间内$f=$redis->lrange('dbs',0,$redis->llen('dbs'));$f=$redis->lrange('dbs',0,-1);//LSETkeyindexvalue------设置list中下标为index的元素的值为value$h=$redis->lset('dbs',1,'jiang');//LTRIMkeystartstop------列表只保留s中的元素specifiedinterval$i=$redis->ltrim('dbs',3,5);//LINDEX键索引------返回列表中下标索引的元素$e=$redis->lindex('dbs',$redis->llen('dbs')-1);//LINSERTkeyBEFORE|AFTERpivotvalue------插入值value到列表中,值pivot之前或者$g之后$redis->linsert('dbs',Redis::BEFORE,'mysql','mysqlmysql');$克=$redis->linsert('dbs',Redis::AFTER,'redis','redisredis');//RPOPLPUSHsourcedestination------命令RPOPLPUSH在一个原子时间内执行以下两个动作:1、弹出listsource中的最后一个元素(tail元素),返回给客户端
;
2、将source的弹出元素插入到listdestination中,作为destination列表的头元素$k=$redis->rpoplpush('dbs1','dbs');Set(集合)相关操作//SADDkeymember[member...]------向setkey中添加一个或多个成员元素,set中已经存在的成员元素将被忽略$a=$redis->sadd('set','xingrongjiang');//SREMkeymember[member...]------移除setkey一个或多个成员元素,不存在的成员元素将被忽略$b=$redis->srem('set','Array');//SMEMBERSkey------返回集合key中的所有成员$c=$redis->smembers('set');//SISMEMBERkeymember------判断member元素是否为setkey的成员$d=$redis->sismember('set','liyang');//SCARDkey------返回cardinalityofthesetkey(集合中元素的个数)$e=$redis->scard('set');//SMOVEsourcedestinationmember------将成员元素从源集合移动到destinationcollection$f=$redis->smove('set','set1','xingrongjiang');//SPOPkey------取出并返回集合随机元素之一$g=$redis->spop('设置');//SRANDMEMBER密钥[count]------如果只提供了key参数,则返回集合中的一个随机元素;如果count为正数且小于集合的基数,则返回一个包含count个元素的数组,数组中的
元素不同;如果计数大于或等于集合的基数,则返回整个集合;如果count为负数,则命令返回一个数组,数组中的元素可能会重复出现,数组的长度为count的绝对值$h=$redis->srandmember('set',2);//SINTERkey[key...]------返回一个集合的所有成员,它是所有给定集合的交集$i=$redis->sinter('set');//SINTERSTOREdestinationkey[key...]------类似于SINTER命令,将结果保存到目标集合中,而不是简单地返回结果集$j=$redis->sinterstore('haha','set');//SUNIONkey[key...]------返回一个集合的所有成员,它是所有给定集合的并集$k=$redis->sunion('set','set1');//SUNIONSTOREdestinationkey[key...]------类似于SUNION命令,将结果保存到destinationcollection中,而不是简单的返回Resultset$l=$redis->sunionstore('haha1','haha','set1');//SDIFFkey[key...]------返回一个集合的所有成员,该集合是所有给定集合之间的差$m=$redis->sdiff('set','set1');排序集(Sortedset)相关操作//ZADDkeyscoremember------name添加元素成员到key的zset中,score用于排序。如果元素已经存在,则根据得分更新元素的顺序$a=$redis->zadd('site',10,'google.com');$a=$redis->zadd('site',9,'baidu.com');$a=$redis->zadd('site',8,'sina.com.cn');//ZREMkeymember------删除zset中名为key的元素成员//$b=$redis->zrem('site','sina.com.cn');//ZCARDkey------返回名为key的zset所有元素的个数$c=$redis->zcard('site');//ZCOUNTkeyminmax------返回有序集合key中score值在min和max之间的成员个数$d=$redis->zcount('site',6,9);//ZSCOREkeymember------返回有序集合key中成员member的分值$e=$redis->zscore('site','baidu.com');//ZINCRBYkeyincrementmember------对有序集合key的member成员的分值加增量,返回值是对分值加增量的结果$f=$redis->zincrby('site',10,'baidu.com');//ZRANGEkeystartstop[WITHSCORES]------返回有序集合key中指定区间内的成员,其中成员的位置按score值递增排序(从小到大)$j=$redis->zrange('site',0,-1);$j=$redis->zrange('site',0,-1,true);//ZREVRANGEkeystartstop[WITHSCORES]------返回有序集合key中指定区间内的成员,其中成员的位置按照score值递减(从大到小)排列$h=$redis->zrevrange('site',0,-1);$h=$redis->zrevrange('site',0,-1,true);Connection(连接)//AUTHpassword------密码验证$a=$redis->auth('123456');//PING------检查连接状态$b=$redis->ping();//SELECTindex------切换到指定数据库,数据库索引号index由数值指定,以0为起始索引值,默认为使用0号数据库$c=$redis->select(1);Server(服务器)//TIME------返回当前服务器时间,一个包含两个字符串的列表:第一个字符串是当前时间(以UNIX时间戳格式表示),第二个字符串是微秒数当前秒已经过去了$a=$redis->time();//DBSIZE-----返回当前数据库中key的个数$b=$redis->dbsize();//BGREWRITEAOF------使用aof进行数据库持久化$c=$redis->bgrewriteaof();//SAVE------同步保存数据到磁盘$d=$redis->save();//BGSAVE------异步保存数据到磁盘$e=$redis->bgsave();//LASTSAVE------返回上次成功将数据保存到磁盘的Unix时间戳$f=$redis->lastsave();//SLAVEOF主机端口-----选择从服务器$redis->slaveof('10.0.1.7',6379);//FLUSHALL------清空整个Redis服务器的数据(删除所有数据库中的所有key)$redis->flushall();//FLUSHDB------清空当前数据库中的所有key$redis->flushdb();//INFO[section]------返回各种信息Redis服务器的离子和统计$g=$redis->info()更多学习内容可以访问从Coder到Architect的实践之路
