zoukankan      html  css  js  c++  java
  • redis 常用命令

    一 字符串

      set key value

      当 SET 命令对一个带有生存时间(TTL)的键进行设置之后, 该键原有的 TTL 将被清除。

      设置过期时间

      $redis = new Redis();
      $redis->connect('127.0.0.1', 6379);
      $aa=$redis->set('aa','aa',60);

      mset key1 value3 key2 value2........ 一次性设置多个   php写法$aa=$redis->mset(['aa'=>1,'bb'=>1,'cc'=>1]);

      mget key1 key2 .... 一次性获取多个          php 写法$aa=$redis->mget(['aa','bb','cc']);

      strlen key 获取长度

      append key value2 字符串追加到后面

      getrange key start end 截取字符串

      incr key 数字加1

      decr key 减1

      incrby key number  数字加numer  只能是整数 正整数为加法运算   负整数减法运算

      decr key number 数字减number 只能是整数  正整数为减法运算   负整数加法运算

      increment key number  数字增加number 可以是浮点或正整数

    二哈希

      hset field key value 

      hmset field key1 value1 key2 value2 ..........   php写法$aa=$redis->hmset('cheng',['name'=>'chengfengchi','aa'=>1]);

      hsetnx field key value   如果field的key存在则不赋值

      hget field key  获取field的key的值

      hmget field key key2.....  php写法 $aa=$redis->hmset('cheng',['name'=>'chengfengchi','aa'=>1]);

      hexists field key 判断是否存在

      hdel field key1 key2 key3 ... 删除多个

      hlen field 获取多少个元素

      hstrlen field key1 返回key1对应的值的长度

      hincrby field key number 数字加number

      hincrbyfloat field key number 数字加浮点number

       hkeys field 获取这个字段所有的key

      hvals field 获取这个字段的所有value

      hgetall field 获取所有的key和value  php获取得到key=>value的一个数组

    三列表

      lpush key value1 value2....   从左到左依次插入数据

      lpushx key value1 value2..   如果列表存在则从左到右一次插入数据

      rpush key value1 value2....   从右到左依次插入数据

      rpushx key value1 value2..   如果列表存在则从右到左一次插入数据

      lpop key  删除最左边的值

      rpop key 删除最右边的值

      rpoplpush key key2 将key的最右面的元素插入key2元素内 

        $redis->rpush('key1',1,2,3,4,5);
        $redis->rpush('key2',1,2,3,4,5);
        $redis->rpoplpush('key1','key2');
        $key1=$redis->lrange('key1',0,-1);
        $key2=$redis->lrange('key2',0,-1);

        结果

        array(4) {
          [0] => string(1) "1"
          [1] => string(1) "2"
          [2] => string(1) "3"
          [3] => string(1) "4"
        }
    
        array(6) {
          [0] => string(1) "5"
          [1] => string(1) "1"
          [2] => string(1) "2"
          [3] => string(1) "3"
          [4] => string(1) "4"
          [5] => string(1) "5"
        }
    lrem key value number 删除列表key值为values删除number个后就停止删除

        $redis->rpush('key1',1,2,3,4,5,3,4,5,6);
        $redis->lrem('key1',3,1);

      llen key 获取元素的个数

      lindex key index 获取该列表第index个的元素  从0开始

      lset key index value 把列表key的index个的值改成value

      lrange key start end  获取key从start 到end个元素   0,-1 为所有的

      ltrim key start end 举个例子,执行命令 LTRIM list 2 ,从第0个删除2个元素

    四列表

      sadd key value value2

      sismember key value  判断value是否存在

      spop key 删除key的随机一个

      srandmember key [number] 随机获取(不带参数随机一个带参数获取代表获取几个)

      srem key value 删除key的value

      smove key key2 key_value  把key里的key_value移除到key2

      scard key 获取总数

      smembers key 获取集合所有值

      sinter key1 key2 两个集合的交集

      sunion key1 key2 两个集合的并集合

      sdiff key1 key2 两个集合的差集合

    五有序集合

      zadd key paixu value zadd key 1 chengfengchi

      zscore key value  返回该value值的key

      zincrby key number value key的value排序值添加number

      zcard key 返回有序集 key 的基数第几个不是排序值

      zcount key start end 返回排序在start end在之间的个数

      zrange key start end [WITHSCORES]返回对应的值 带参数包括排序值 从小到大

      zrevrange key start end [WITHSCORES]返回对应的值 带参数包括排序值 从大到小

      ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回范围内的值从小到大   limit offset(跳过多少个) count(读取多少个)

      zrevrangebyscore key min max [WITHSCORES] [LIMIT offset count] 返回范围内的值从大到小   limit offset(跳过多少个) count(读取多少个)

      zrank key value 返回value在key内的基数 从小到大排序

      zrevrank key value 返回value在key内的基数 从大到小排序

      zrem key value1 value2 删除key内的值

      ZREMRANGEBYRANK key start stop 移除rank排序范围内的值(基数)

      REMRANGEBYSCORE key min max 移除paixu在min max范围内的值

    1)、【 set key value 】 存入一个key和值。如:set myname reson

    2)、【 get key 】 读取一个key的值。

    3)、【 del key 】 删除一个key。

    4)、【 del key1 key2 ... keyN 】 删除多个key。如:del myname1 myname2

    5)、【 exists key 】 判断一个key是否存在。

    6)、【 type key 】 查看key的类型。

    7)、【 rename key keyNew 】 重命名key名。如:rename myname myname2

    8)、【 dbsize 】 查看当前库中的key的条数。  

    9)、【 expire key time 】 指定key的过期时间,单位为秒。如:expire myname 9(设置9秒后过期)

    10)、【 ttl key 】 查看redis有多长时间过期,单位为秒。

    11)、【 keys * 】 列出当前库中所有的key名。

    12)、【 keys a* 】 列出当前库中所有以字符串“a"开头的key。

    13)、【 select db-index 】 选择一个数据库,如选择第一个数据库:select 0;选择第二个 select 1;默认有16个数据库,这个值可以在redis.conf中配置。

    14)、【 flushdb 】 清掉当前库中所有的key(生产环境下需谨慎操作)。

    15)、【 flushall 】 清掉所有库中全部的key(生产环境下需谨慎操作)。

    16)、【 mset key1 value1 key2 value2 ... keyN valueN 】 一次性存入多个key和值。

    17)、【 mget key1 key2 ... keyN 】 一次性读取多个key。

    18)、【 incr key 】 可以对key类型+1的操作(相当于编程语言里面的++),只能操作number型,操作字符串会报错。可对新值进行操作。

    19)、【 decr key 】 可以对key类型-1的操作(相当于编程语言里面的--),只能操作number型,操作字符串会报错。

    20)、【 incrby key num 】 同incr,对key的值加num,比如 incrby aa 10,对aa+10。

    21)、【 decrby key num 】 同上,对key的值减num。

    22)、【 append key value 】 对指定key的字符串进行追加,如果key为整形,会被转为字符串。如aa的值为9,执行append aa 10后,会变成910。

    23)、【 substr key start end 】 对key进行截取start到end个字符。如aa的值为:abcdef,执行substr aa 2 3后,返回“cd”。

     

    2、redis链表类型(list)命令

     

    24)、【 lpush key value 】 往队列头部插入一个元素

    25)、【 rpush key value 】 从尾部插入一个元素

    26)、【 lpop key 】 从队列头部删掉一个元素

    27)、【 rpop key 】 从队列尾部删掉一个元素,并返回被删除元素的值

    28)、【 llen 】 返回队列的长度,即里面有多少个元素。不存在key返回0,不为队列类型的key会返回报错。

    29)、【 lrange key start end 】 返回队列从start到end之间的元素信息。

    30)、【 ltrim key start end 】 截取一个队列,只保留指定区间内的元素。

     

    3、redis无序集合set类型命令

     

    31)、【 sadd key vaule 】 往集合中插入一个元素,如果value值已存在集合中,则返回0,不会被重复插入。

    32)、【 sinter key1 key2 ... keyN 】 取出n个key之间的交集。比如 key1里面有值a,b,c,d,e,key2里面有d,e,f,sinter key1 key2返回d,e。

    33)、【 sunion key1 key2 ... keyN 】 取出n个key之间的并集。比如 key1里面有值a,b,c,d,e,key2里面有d,e,f,sunion key1 key2返回a,b,c,d,e,f。

    34)、【 sdiff  key1 key2 】 取出n个key之间的差集。比如 key1里面有值a,b,c,d,e,key2

    里面有d,e,f,sdiff key1 key2返回a,b,c;反过来sdiff key2 key1返回f。

    35)、【 smembers key 】 返回key集合中所有的元素,结果是无序的。

    36)、【 sismember key value 】 查看value这个值是否在key集合中。存在返回1,不存在返回0。

    37)、【 scard key 】 返回集合中有多少个元素。

    38)、【 smove key1 key2 value 】 把value从key1中移到key2中去。

    39)、【 srem key value1 value2 ... valueN 】 从key集合中删掉某些元素。

     

    4、redis有序集合sorted set命令

     

    40)、【 zadd key v k 】 往key中添加一个元素,k为键,v为值。如:zadd artHits 99 12表示id为12的文章点击量为99次。

    41)、【 zrange key start end 】 根据v的值由小到大进行排序来获得start到end之间的元素。

    注:0表示第一个元素,-1表示最后一个元素,-2表示倒数第二个元素,以此类推,如果要获取第一个到倒数第三个之间的元素,命令为:zrange key 0 -3。

    42)、【 zrevrange key start end 】 同上,根据v的值由大到小进行排序来获得start到end之间的元素。可以轻松取出点击量最高的前n篇文章。

    43)、【 zremrangebyrank key start end 】 删除集合中的元素。排序的方式为按照v由小到大的顺序,如果要删除key集合中的第一个值,则运行 zremrangebyrank artHits 0 0;删除前3个值:zremrangebyrank artHits 0 2。

    44)、【 zcard 】 返回key集合中元素的个数。

    45)、【 zrank key k 】 返回值k在集合key中排第几位,是按照v由小到大的顺序。排第一名返回0,第二返回1,以此类推。

    46)、【 zrevrank key k 】 同上,不同的是,按照v由大到小的顺序。可以轻松取出点击量最高的文章。

    47)、【 zscore key k 】 取出集合key中键为k对应的值v。

    48)、【 zrem key k 】 删除集合中指定元素。

    49)、【 zincrby key num k 】 给集合key中的元素k加上num,值针对整型。比如 zincrby artHits 3 12,给id为12的文章加上3个点击量。此时zscore artHits 12的结果是99+3为102。

     

    5、redis哈希hash类型命令

     

    50)、【 hset key field value 】 设置hash field为指定值,如果key不存在,则先创建。

    51)、【 hmset key field1 value1 ... fieldN valueN 】 同时设置多个值。

    52)、【 hget key field 】  获取指定的hash field

    53)、【 hmget key field1 field1 ... fieldN 】 获取指定的多个hash field

    54)、【 hincrby key field num 】 将指定的hash field加上指定的值。

    55)、【 hexists key field 】 查看指定field是否存在。

    56)、【 hdel key field 】 删除指定的hash field。

    57)、【 hlen key 】 返回指定hash中field的数量。

    58)、【 hkeys key 】 返回hash所有的field。

    59)、【 hvals 】 返回hash中所有的value。

    60)、【 hgetall key 】 返回hash中所有的field和value。

  • 相关阅读:
    MySQL key分区(五)
    Kolya and Tandem Repeat
    Hadoop源码分析(MapReduce概论)
    写一个随机洗牌函数——概率题
    《说吧,医生》难得的五星级中文原创医学科普。
    《卖体验》:给用户超出预期的体验。营销讲师风格,陷入了锤子模式。三星推荐
    《最大回报:健康投资》:协和医院专家的医疗健康科普书,书有点旧了,水平够专业 三星推荐
    《听体检说:健康都去哪了》:体检项目的科普书,可以当作手册来翻一翻。 三星推荐
    《金融的解释》:深入浅出的金融学入门 三星推荐
    《病有所医当问谁》:市场化是医改大方向,医改的问题是市场化不够 五星推荐
  • 原文地址:https://www.cnblogs.com/chengfengchi/p/10387236.html
Copyright © 2011-2022 走看看