zoukankan      html  css  js  c++  java
  • PHP的redis使用

    redis参考学习手册:

    [www.redis.cn](http://www.redis.cn/commands.html)
    [www.runoob.com](https://www.runoob.com/redis/redis-tutorial.html)
    

    string类型(string类型类似memcached的key-value结构)

        $redis->set($key,$value);
        $redis->set('name','大米饭');
    
        $redis->get($key);
        $redis->get('name'); //输出"大米饭"
    
        $redis->setex($key,$second_time,$value); //$second_time--秒数
        $redis->setex('age',10,'24'); //10s后 age这个key就过期不存在了
    
        $redis->psetex($key, $ms_time, $value); //$ms_time--毫秒数
        $redis->psetex('age', 10000, '24'); //10s后 age这个key就过期不存在了
    
        $redis->sexnx($key,$value); //若键存在,则设置失败返回false;键不存在,返回true
    
        $redis->ttl($key);
        $redis->ttl('age'); //返回剩余的生存时间-秒数
    
        $redis->exists($key); //检测键是否存在
        
        $redis->delete($key); //删除键,支持传数组array($key1,$key2,...),一次删除多个key
        
        
        
    
        
    
    
    
        
        
    
    
    

    list链表类型


    set集合类型(无序集合,不允许出现重复的元素)

    $redis->sAdd($key,$value); //从左侧插入,最后插入的元素在0位置,集合中存在$value,则插入失败返回false
    $redis->sMembers($key) //获取key所有的元素
    $redis->sIsMember($key,$value); //判断$value是否在$key的集合中
    $redis->sRem($key,$value);
    $redis->sMove($ori_key,$dest_key,$ori_value); //将$ori_key中的$ori_value移到$dest_key集合中
    $redis->sCard($key);//返回$key集合的成员数
    $redis->sPop($key);  //随机返回集合中一个元素,并从集合中移除该元素
    
    $redis->sInter($key0,$key1); //取两个集合的交集,没有交集则返回空数组;如参数只有一个数组,则返回集合对应的完整的数组
    
    $redis->sInterStore($dest_key,$ori_key0,$ori_key1); //将集合$ori_key0和$ori_key1取交集然后放到$dest_key集合里,成功返回1
    
    $redis->sUnion($key0,$key1); //取两个集合并集
    
    $redis->sDiff(); //返回数组,该数组元素是存在于$key集合而不存在于集合$key0,$key1
    

    zset有序类型 (有序集合,每个元素会关联一个double类型的分数)

    $redis->zAdd($key,1,$value); //
    $redis->zRange($key,0,-1);
    $redis->zRange($key,0,-1,true);
    

    hash类型

    $redis->hSet($key,$field,$value); //
    $redis->hSetNx($key,$field,$value); 
    $redis->hGet($key,$field);
    $redis->hMSet($key,array($field0=>$value0,$field1=>$value1));
    $redis->hMGet($key,array($field0,$field1));
    $redis->hGetAll($key);
    $redis->hKeys($key);
    $redis->hVals($key);
    $redis->hExists($key,$field);
    $redis->hLen($key);
    $redis->hDel($key,$field);
    

    批量删除redis的key

    public function delSimilarKeys($prefix)
        {
            for ($i = 0; $i < 10; $i++) {
                $this->redis->set($prefix . "$i", "$i");
            }
            $this->redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
    
            $it = NULL;
            while (true) {
                $arr_keys = $this->redis->scan($it, "$prefix*");
                if ($arr_keys === false) {//迭代结束,未找到匹配pattern的key
                    return;
                }
    
                call_user_func_array([$this->redis, 'del'], $arr_keys);
    
            }
            return $arr_keys;
        }
    
    同理:可批量设置前缀相同的key的缓存时间
    
    

    redis相关命令

    1. 启动redis服务:redis-server /path/to/redis.conf [&] (以配置文件的配置进行加载,&以后台启动)
    
    2. 启动redis客户端: redis-cli 
    
    3. 查看redis相关进程: ps aux |grep redis
    
    4. 杀死redis相关进程: kill -9 redis进程id (进程id可通过上面一句命令拿到)
    
    
    #### redis使用坑记
    1. redis配置文件设置了requirepass,在拿到redis实例后,应该加上 $redis->auth($password); //$password:redis配置文件中配置的密码; 
    
    
    

    我是一个懒人,写完再把这句话删掉!!!

  • 相关阅读:
    ubuntu19.04 redis启动和停止及连接
    ubuntu Redis安装及配置
    Django 基本使用及目录结构
    selenium设置chrome请求头
    多进程爬虫python——实例爬取酷狗歌单
    2020第一周学习记录
    爬取博客园最新文章
    python下用selenium的webdriver包如何在执行完点击下一页后没有获得下一页新打开页面的html源代码
    质量属性六个常见属性《钉钉》场景分析
    warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '报错
  • 原文地址:https://www.cnblogs.com/xinxinmifan/p/phpredis-learning-notes.html
Copyright © 2011-2022 走看看