php操作 redis总结

12 篇文章 0 订阅

连接

$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集合,但是并不排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值