zoukankan      html  css  js  c++  java
  • redis 的 hash、set、list操作

    /**
     *
     * Hash操作
     * 哈希操作
     * 可理解为数据库操作
     * 
     */
    
    //为user表中的字段赋值。成功返回1,失败返回0。若user表不存在会先创建表再赋值,若字段已存在会覆盖旧值。
    $redis->hSet('user', 'name', '222');
    
    //获取user表中指定字段的值。若user表不存在则返回false。
    $redis->hGet('user', 'realname');
    
    //查看user表的某个字段是否存在,存在返回true,否则返回false。
    $redis->hExists('user', 'realname');
    
    //删除user表的一个字段,不支持删除多个字段。成功返回1,否则返回0。
    $redis->hDel('user', '222');
    
    //同时设置某个user表的多个字段值。成功返回true。
    $redis->hMset('user', ['name' => 'jet', 'age' => 18]);
    
    //同时获取某个user表的多个字段值。其中不存在的字段值为false。
    $redis->hMget('user', ['name', 'age']);
    
    //获取某个user表所有的字段和值。
    $redis->hGetAll('user');
    
    //获取某个user表所有字段名。user表不存在时返回空数组,key不为user表时返回false。
    $redis->hKeys('user');
    
    //获取某个user表所有字段值。
    $redis->hVals('user');
    
    //为user表中不存在的字段赋值。若user表不存在则先创建,若字段已存在则不做任何操作。设置成功返回true,否则返回false。
    $redis->hSetNx('user', 'realname', 'jetwu');
    
    //获取某个user表的字段数量。若user表不存在返回0,若user不是hash表则返回false。
    $redis->hLen('user');
    
    //为user表中的指定字段加上指定的数值,若user表不存在则先创建,若字段不存在则先初始化值为0再进行操作,若字段值为字符串则返回false。设置成功返回字段新值。
    $redis->hIncrBy('user', 'age', 10);
    
    //为user表中的指定字段加上指定浮点数值。
    $redis->hIncrBy('user', 'age', 1.5);
    
    
    /**
        * 
        * List操作
        * 列表操作
        * 可理解为数组操作
        * 插入、删除数据按照一定规律排列的
        * 元素可重复
        * 适用于队列
        * 
        */
       
       //在列表头部插入一个值one,当列表不存在时自动创建一个列表,key1为列表名
         $redis->lpush("key1", "one");
    
       //在列表尾部插入一个值two,当列表不存在时自动创建一个列表,key1为列表名
         $redis->rPush("key1","two");
    
       //将一个插入已存在的列表头部,列表不存在时操作无效
        $redis->rPushx("key1","1");
    
        //删除列表的第一个元素并返回列表和列表的第一个元素,当key1不存在或不是列表则返回false
        $redis->lPop('key1');
    
        //删除列表的最后一个元素并返回列表和列表的最后一个元素,当key1不存在或不是列表则返回false
        $redis->rPop('key1');
    
       //删除并或取列表的第一个元素,如果没有元素则会阻塞直到等待超时
       $redis->blPop('asd', 10);
    
       //删除并或取列表的最后一个元素,如果没有元素则会阻塞直到等待超时
       $ret = $redis->brPop('asd', 10);
    
       //移除列表key1中最后一个元素,将其插入另一个列表asd头部,并返回这个元素。若源列表没有元素则返回false
        $redis->rpoplpush('key1', 'asd');
    
        //移除列表key1中最后一个元素,将其插入另一个列表asd头部,并返回这个元素。如果列表没有元素则会阻塞列表直到超时,超时返回false。
        $ret = $redis->brpoplpush('key1', 'asd', 10);
    
       //返回列表长度
        $redis->lLen('key1');
    
       //通过索引 (也就是下标key) 获取列表中的元素,如果没有该索引,则返回false。
        $redis->lindex('key1', 0);
        
        //通过索引修改列表中元素的值,如果没有该索引,则返回false。
        $redis->lSet('key1', 2, '1');
    
    
        //在列表key1中指定元素six前面或后面插入元素。若指定元素不在列表中,或列表不存在时,不执行任何操作
        //Redis::AFTER插入元素后面    Redis::BEFORE插入元素前面
        //返回值:插入成功返回插入后列表元素个数,若key1不存在返回0,若key1不是列表返回false
        $redis->lInsert('key1', Redis::BEFORE, 'one', '1');
    
        //根据第三个参数(count),删除掉相对的value
        //count > 0 : 从表头开始向表尾搜索,移除与value相等的元素,数量为count。
        //count < 0 : 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
        //count = 0 : 移除表中所有与value相等的值。
        //返回实际删除元素个数
        $redis->lrem('key1', '1', -2);
    
          //对一个列表进行截取,只保留指定区间 (如:下标1到10) 的元素,其他元素都删除。成功返回true。
        $redis->ltrim('key1', 1, 10);
    
       // 获取存储的数据并输出列表下标0到5的数据
       // 0为开始查询的列表里的第一个元素,-1则为最后一个元素
       // 5代表查询5条数据,当5为-1时则查看所有数据,
       $redis->lrange("key1", 0 ,5);
    
    
    
    
    /**
     *
     * Set操作
     * 集合命令
     * 保证数据的唯一
     * 不保证顺序
     * 
     */
    
    
    //将一个元素加入集合,已经存在集合中的元素则忽略。若集合不存在则先创建,若key不是集合类型则返回false,若元素已存在返回0,插入成功返回1。
    $redis->sAdd('set3', '11');
    
    
    //返回集合中所有成员。
    $redis->sMembers('set3');
    
    //判断集合里是否存在指定元素,是返回true,否则返回false。
    $redis->sismember('set', 'hello');
    
    //返回集合中元素的数量。
    $redis->scard('set');
    
    //随机删除并返回集合里的一个元素。
    $redis->sPop('set');
    
    //随机返回(n)个集合内的元素,由第二个参数决定返回多少个
    //如果 n 大于集合内元素的个数则返回整个集合
    //如果 n 是负数时随机返回 n 的绝对值,数组内的元素会重复出现
    $redis->sRandMember('set', -20);
    
    //删除集合中指定的一个元素,元素不存在返回0。删除成功返回1,否则返回0。
    $redis->srem('set', 'hello');
    
    //模糊搜索相对的元素,
    //参数:key,迭代器变量,匹配值,每次返回元素数量(默认为10个)
    $redis->sscan('set', $it, 's*', 5);
    
    //将指定一个源集合里的值移动到一个目的集合。成功返回true,失败或者源集合值不存在时返回false。
    //参数:源集合,目标集合,移动的元素
    $redis->sMove('set', 'set2', 'sdf4');
    
    //以第一个集合为标准,后面的集合对比,返回差集
     $redis->sDiff('set', 'set2','set3');
    
    //参数:第一个参数为目标集合,存储缺少的值(三个集合相加,同样字段覆盖,组合成一个新的集合)返回第一个参数所增加的值的个数。
    $redis->sDiffStore('set', 'set3', 'set2');
    
    //返回所有集合的相同值,必须所有集合都有,不存在的集合视为空集。
    $redis->sInter('set', 'set3', 'set2');
    
    //参数:第一个参数为目标集合,存储后面集合的交集
    //若目的集合已存在则覆盖它。返回交集元素个数,否则返回储存的交集
    $redis->sInterStore('set4', 'set', 'set3');
    
    //把所有集合合并在一起并返回
    $redis->sUnion('set', 'set2', 'set3');
    
    //以第一个集合为目标,把后面的集合合并在一起,存储到第一个集合里面,如果已经存在则覆盖掉,并返回并集的个数
    $redis->sUnionStore('set4', 'set', 'set2', 'set3');
    
    
    
    世事洞明皆学问
  • 相关阅读:
    [Javascript] Broadcaster + Operator + Listener pattern -- 9. Create modify, filter, map operators
    [Javascript] Broadcaster + Operator + Listener pattern -- 8. Pass a Done Symbol when an Async Function is Done
    [Javascript] Broadcaster + Operator + Listener pattern -- 7. Create a broadcaster forOf
    [Javascript] Broadcaster + Operator + Listener pattern -- 6. Create a Buffer to Pair Values Together with Zip
    [Functional Programming] Match Function Requirements with Lodash Partial and Flip
    [Javascript] Broadcaster + Operator + Listener pattern -- 5. Merge (Example)
    [React] Performance: Split state update and component render with Hoc
    [React] Optimize context value
    [React] useAsync
    Nodejs.sublime-build 在sublime3中的配置
  • 原文地址:https://www.cnblogs.com/Json159/p/14105875.html
Copyright © 2011-2022 走看看