php redis使用

访问连接

远程访问
//实例化
$redis=new Redis();
try{
    $redis->connect('47.98.55.11','6379');
    $redis->auth('123456');
    echo $redis->ping();
}catch (Exception $e){
    echo $e->getMessage();
}

字符串操作(string)

//设置
$redis->set('name','jack');
//只有key不能存在时才有效,没有修改效果
$redis->setnx('name','jack');
//读取 echo $redis->get('name');

列表(list)存入

//左侧存入
$redis->lPush('list','css');
//读取所有 $list=$redis->lRange('list','0','-1'); print_r($list); //获取列表长度 echo $redis->lSize('list'); //按照索引取值 echo $redis->lGet('list',2); echo $redis->lindex('list',3); //按照索引范围取值 $list=$redis->lRange('list',0,2); print_r($list); //列表截取,截取的部分保留,其他删除,成功返回1 $ret=$redis->lTrim('list',0,1); print_r($ret); //删除 //删除列表中value为python的元素count个,count为正从左边开始,反之同理,count为0表示删除所有值为python的 $redis->lRem('list','python',1);

列表实现队列

//实例化
$redis=new Redis();
try{
    $redis->pconnect('47.98.55.11','6379');//守护进程
    $redis->auth('123456');
    echo $redis->ping();
}catch (Exception $e){
    echo $e->getMessage();
}
echo '<hr/>';

for($i=0;$i<50;$i++){
    try{
        $redis->lPush('click',rand(1000,5000));
    }catch (Exception $e){
        echo $e->getMessage();
    }
}


//取数据
while (true){
    try{
        $value=$redis->rPop('click');
        if(!$value){
            break;
        }
    }catch (Exception $e){
        echo $e->getMessage();
    }
}
View Code

字典(hash)

设置
//返回1设置成功,0表示失败,如果有值,则是修改,返回0
echo $redis->hSet('hash','username','rose');
//读取
echo $redis->hGet('hash','age');
//读取所有的keys
$ret=$redis->hKeys('hash');
print_r($ret);
//读取所有的val,顺序是随机的
$ret=$redis->hVals('hash');
//读取所有的key-val,顺序是随机的
$ret=$redis->hGetAll('hash');
//hsah的长度
$ret=$redis->hLen('hash');
//删除指定key的键值对,成功返回true,失败返回false
echo $redis->hDel('hash','age');
//存入字典
$arr=['uaername'=>'jack','age'=>23,'gender'=>'boy'];
$redis->hMSet('userinfo',$arr);

//指定对个key获取内容
$arr_key=['username','gender'];
$ret=$redis->hMGet('userinfo',$arr_key);

//判断某个key是否存在
$ret=$redis->hExists('userinfo','age');
//值只能为整数,不存在设置,存在的话自增2,
$ret=$redis->hIncrBy('userinfo','1',2);
//小数,存在则自增,不存在则则增加
$ret=$redis->hIncrByFloat('userinfo','3',1.5);

无序集合(set)

//添加元素
$ret=$redis->sAdd('fruits','冬瓜');
//删除元素
$ret=$redis->sRem('fruits','地瓜');
//判断是否是成员
$ret=$redis->sIsMember('fruits','南瓜');

//查看数据长度
$ret=$redis->sCard('fruits');
//随机删除元素,并返回删除的值
$ret=$redis->sPop('fruits');

//交集
$ret=$redis->sInter('f1','f2');
//获取交集并放到集合output中
$redis->sInterStore('output','f1','f2');
//并集
$ret=$redis->sUnion('f1','f2');

//并集,并放到output中
$ret=$redis->sUnionStore('output','f1','f2');
//差集f1-f2
$ret=$redis->sDiff('f1','f2');
//差集f1-f2,并保存到集合output
$ret=$redis->sDiffStore('output','f1','f2');

//查看集合所有内容
$ret=$redis->sMembers('fruits');

有序集合(Sorted Set)

//增加
$redis->zadd('s1', 1, 'ab');
//删除指定成员
echo $redis->zRem('s1','ef');
/ zincrby 对指定元素分数值的增减
$redis->zincrby('s1', 2, 'ab');
//返回score
echo $redis->zscore('s1', 'ef');
//移除指定元素
$redis->zrem('s1', 'ef');
按分数值返回元素
$redis->zrangebyscore('s1', 2, 9); // 返回分数值2-9之间的元素
$redis->zrangebyscore('s1', 2, 9, 'withscores'); // 返回分数值2-9之间的元素,并包含分数值所在元素
//查看集合所有内容
$ret=$redis->zRange('s1',0,-1);
//返回集合长度
print_r($redis->zcard('s1'));

其他

后续补充

原文地址:https://www.cnblogs.com/huay/p/11395204.html