连接
$redis = new Redis();
$redis->connect('127.0.0.1',6379,1);//短链接,超过一秒放弃连接
$redis->open('127.0.0.1',6379,1);//短链接,超过一秒放弃连接
$redis->pconnect('127.0.0.1',6379,1);//长连接,超过一秒放弃连接
$redis->popen('127.0.0.1',6379.1);//长连接,超过一秒放弃连接
$redis->auth("passwd");//授权
$redis->ping();//检查是否还在连接
$redis->select(1);//选择数据库
类型
字符串
普通set/get操作
$redis->set('test:str','value');
$redis->get('test:str');
setnx只有key不存在时设置key相当于只能用作添加不能作为更新使用
$redis->setnx('test:str2','value2');
$redis->get('test:str2');
setex 赋值并设置生存时间
$redis->setex('key',10,'value');
批量赋值
$redis->mset(array('key0' => 'value0', 'key1' =>'value1'));//批量赋值
$redis->mget(array('key0', 'key1', 'key2'));//批量获取值
递增或递减
$redis->incr('test:str');
$redis->decr('test:str');
$redis->incrby('test:str',10);
$redis->decrby('tets:str',10);
集合
添加元素
$redis->sadd('test:set','val1');
$redis->sadd('test:set','val2');
$redis->sadd('test:set','val3');
删除元素
#删除指定元素
$redis->srem('test:set','val2');
#删除随机一个元素并返回
$redis->spop('test:set');
移动
$redis->smove('test:set1','test:set2','value')//将value从1移动到2
返回集合中元素数量
$redis->scard('test:set');
返回当前表所有元素
$redis->smumbers('test:set');
有序集合
在集合的基础上添加分数的概念
添加
$redis->zadd('test:zset',1,'val1');
$redis->zadd('test:zset',2,'val2');
$redis->zadd('test:zset',3,'val3');
$redis->zadd('test:zset',2,'val4');
删除指定元素
$redis->zrem('test:zset','val1');
查询元素分数值
$redis->zscore('test:zset','val2');
对指定元素分数值的增减
$redis->zincrby('test:zset',2,'val2');
zcard统计个数
$redis->zcard('test:zset');
按索引区间返回指定区间元素
$redis->zrange('test:zset',0,-1);//返回所有元素
$redis->zcount('test:zset',0,9);//返回集合中score min到max数量
按分数值返回元素
$redis->zrangebyscore('test:zset',2,9);//返回分数值2-9之间的元素
$redis->zrangebyscore('test:zset1', 2, 9, 'withscores'); // 返回分数值2-9之间的元素,并包含分数值所在元素
列表
增加/删除元素
$redis->push('test:list','val1');//返回列表长度
$redis->pop('test:list');
$redis->rpush('test:list','val2')
$redis->lpop('test:list');
$redis->blpop('test:list');//阻塞式pop
#为已经存在的列表添加值,列表必须是已经存在的
$redis->rpushx('test:list','val1');
$redis->lpushx('test:list','val2')
$redis->llen('test:list');//列表长度
返回列表中一个区间的元素
$redis->lrange('test:list',0,-1);//返回所有元素
$redis->lrange('test:list',0,1);//返回0 1两个元素
修改列表指定位置的值
$redis->lset('test:list',1,'val');
返回指定位置的值
$redis->lindex('test:list',1);
hash
存取hash表的数据
$redis->hset('test:hash','key1','val1');
$redis->hset('test:hash','key2','val2');
$redis->hget('test:hash','key1')
只做添加
$redis->hsetnx('test:hash','key3','val3');
存取多个元素
$redis->hmset('test:hash',array('key4'=>'val4','key5'=>'val5'));
$redis->hmget('test:hash',array('key4',key5));
指定字段,设置整数增量
$redis->hincrby('test:hash','key6',4);
$redis->hincrby('test:hash','key6',-5);
查询hash表中字段是否存在
$redis->hexists('test:hash','key5');
删除指定字段
$redis->('test:hash','key5');
返回hash元素个数
$redis->hlen('test:hash');
返回hash表中所有元素
$redis->hkeys('test:hash');
返回hash表中所有value
$redis->hvals('test:hash');
返回整个hash表元素
$redis->hgetall('test:hash');
其它操作
检测是否存在某值
$redis->exists('test:foos');
删除
$redis->del('test:foo')
设置生存时间
$redis->expire('test:foo',1);
$redis->expireat('test:foo',时间戳);
$redis->ttl('test:foo');//秒
$redis->pexpire('test:foo',1500);//毫秒级别
$redis->pttl('test:foo');//毫秒
检测类型
$redis->type('test:foo');
序列化
$redis->dump('test:foo');
移动
$redis->move('key',10);
类型关系
列表可以理解为string的一个集合(可以重复)
集合则是不可以重复的列表
有序集合则是一个key:value的集合,并且key不能重复,并且是根据value排序的
hash 也是一个key:value集合,但是并不排序