键值操作 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //参数:connect(host,port,timeout) //timeout可以为空,在redis.conf里timeout默认300 //pconnect不会主动关闭的连接 key //写入值 $redis->set($work->uid, $workString); $redis->setnx($work->uid,$workString); //key不存在是赋值 $redis->setex($a,50,1); //range设置值后ttl设为50 $redis->setrange(key,offset,value); //获取值 $redis->get($work->uid); //删除key $redis->del($work->uid); var_dump($redis->get($work->uid)); //返回bool(false) //键是否存在 if(!$redis->exists('key')) var_dump($redis->del('key')); //返回int(0) mset多个key操作 //设置mset $array_mset=['a'=>1,'b'=>2]; $redis->mset($array); $redis->msetnx($array); //key不存在时才写入,但一次要么全写,要么全不写。 //读取mset $array_mget=['a','b']; $redis->mget($arram_mget); //删除多个key $redis->del($array_mget); keys //读取keys $array_mset_keys=['abc'=>1,'bcd'=>2,'cde'=>3]; $redis->keys('*a*'); //返回['a'=>1]; $redis->keys('b??'); //返回['b'=>2]; $redis->keys('*'); //返回所有keys getset key value:设置值并返回旧值 strlen:返回字符串长度 getrange(substr):字符串截取 rename:键改名 $redis->rename('a','a1'); //成功返回true,键不存在时返回false,newkey已经存在其值会被覆盖; renamex:键改名,newkey存在时不改 $redis->renamex('a','a1'); //a1如果已经存在,返回0; append:字符串追加 $redis->append('a','12345') ;//如果a不存在,就是普通的set操作 incr:储存的数字值增1 incrby:值增increment $redis->incrby('a',10); decr:数字值减1 decrby:数字值减decrement setbit key offset value:设置或清除指定位 getbit key offset:获取指定偏移量上的位 type:返回key值类型 返回值有以下几种: none (key不存在) int(0) string 字符串 int(1) list 列表 int(3) set 集合 int(2) zset 有序集合 int(4) hash 哈希表 int(5) randomkey:随机返回一个key echo $redis->randomkey(); //如果没有key 返回false object:查看对象 move:移动数据 $redis->MOVE('a',1)); //把键a从当前数据库移到1里。如果key不存在,返回false; 目标数据库存在key时,返回false. Hash hset key field value:设置哈希值 hsetnx key field value:不存在时设置值 hmset key field value[field value…]:设置多个哈希值 hget key field:获取hash域值 hmget key field [field …]:获取若干个域值 hgetall key:返回key所有域和值 hdel key field [field…]除一个或多个域 hlen key:返回key里域数量 hexists key field:查看key里给定域的field是否存在 hincrby key field increment:域值增加increment hkeys key:返回所有域 hvals key:返回key所有值 表:lpush key value[value…]: 表头插入一个或多个值 $redis->lpush('a',1); $redis->lpush('a',2); lpushx key value:当且仅当key存在并且是一个列表时才插入 rpush key value:表尾插入 rpushx key value、lpop key:移除并返回key头元素 rpop key:移除并返回key的尾元素 blpop key [key…]:timeout lpop的阻塞版本,如果没有可供弹出的元素,程序会等待。 brpop key [key…]:timeout rpop的阻塞版本 llen key:返回列表 key的长度 lrange key start stop:返回区间 lrem key count value:移除列表值为value的元素 count>0 从表头向表尾搜索,移除值为value的元素,数量为count count<0 从表尾向表头,移除值为value的元素,数量为-count count=0 移除值为value的元素 lset key index value:设置key下标为index的值 ltrim key start stop:对列表修剪,删除区间外元素 lindex key index:返回下标为index的元素 linsert key:插入 rpoplpush source destination:弹出最后一个元素,把元素插入到列表destination里作为表头 brpoplpush source destination timeout:阻塞 集合(Set) sadd key member [member …]:插入元素到集合里 srem key member [member …]:移除元素 smembers key:返回集合成员 sismember key member:判断member是否是key的成员 scard key:返回集合key的基数 smove source destination member:member元素从source移动到destination spop key:移除并返回集合中的一个随机元素 srandmember:返回集合中一个随机元素 sinter key [key…]:返回集合成员 sinterstore destination key[key…]:返回成员到destination里,如果目标存在则覆盖 sunion key [key …]:返回集合全部成员 sunionstore destination key[key…]:返回成员保存到destination sdiff key[key…]:返回一个集合的全部成员 sdiffstore destination key[key…]:结果保存到destination Sorted Set有序集 zadd key score member[[score member] [score member] …]:一个或多个member及其score加入到有序集key中 zrem key member [member…]:移除有序集key中的一个或多个成员 zcard key:返回有序集key的基数 zcount key min max:返回有序集key中,score值在min与max之间的成员 zscore key member:返回有序集key中成员member的score值 zincreby key increment member:给member成员的score值增量 zrange key start stop [WITHSCORES]:返回有序集key中指定区间成员,score从小到大 zrevrange key start stop [WITHSCORES]:返回key中指定区间内的成员,score从大到小 zrangebyscore:返回区间成员,score从小到大 zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]:返回敬意成员,score从大到小 zrank key member:返回member排名,score从小到大 zrevrank key member:member排名,score递减 ZREMRANGEBYRANK key start stop:移除成员,下标在start stop之间 ZREMRANGEBYSCORE key min max:移除成员,score在min与max之间 ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]:计算有序集交集 ZUNIONSTORE:计算有序集并集 排序 sort 数值排序 $redis->SORT('a'); //返回排序结果 alpha限定按字符排序 $redis->SORT('a',array('ALPHA'=>TRUE)); //返回排序结果 limit限定返回数量 $redis->SORT('a',array('LIMIT'=>array(0,5)); sort限定正序倒序 $redis->SORT('a',array('SORT'=>'DESC')); by外部排序 $redis->SORT('a',array('BY'=>'')); 排序其它用法较多,这里不再详细一一列举。 生命周期 ttl、expire、expireat $redis->set('a',12345); $redis->expire('a',30); //单位秒 $redis->expireat('a','1435152916'); //接受时间戳 echo $redis->get('a'); //如果已经过期,返回false echo $redis->ttl('a'); //返回剩余时间(秒)。如果未赋expire值,返回-1;如果键不存在,也返回-1 persit移除生存时间 $redis->persist('a'); 数据库操作 选择数据库 $redis->SELECT(0); //默认就是数据库0 清除 $redis->FLUSHALL(); //删除所有数据库 $redis->flushdb(); //删除当前数据库所有key