zoukankan      html  css  js  c++  java
  • 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'));

    其他

    后续补充

  • 相关阅读:
    U3D+SVN: 两份相同资源放在不同目录下导致META的更改
    sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中
    android 屏幕适配
    android httpUrlConnection HttpClient
    android ndk
    android viewStub
    android 数字签名
    android mvc
    android OOM 内存溢出
    Aidl
  • 原文地址:https://www.cnblogs.com/huay/p/11395204.html
Copyright © 2011-2022 走看看