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

    *

     参考地址:redis学习教程之一基本命令

    一,基本类型

    1,简单key-value

    set key value:设置key的值,若存在则覆盖
    setnx key value:SET if Not eXists,若存在则不操作。
    MSET key1 value1 key2 value2 ... keyN valueN:设置这些key的值,若存在则覆盖
    MSETNX key1 value1 key2 value2 ... keyN valueN:同mset,但如果其中一个key已经存在了,则都不设置。这些操作都是原子的。
    rename key: 重命名
    
    append key value:向key的字符串追加拼接。
    get key:获取key对应的值 MGET key1 key2 ... keyN:获取这些key对应的值 
    EXISTS key:查看是否存在该元素。
    GETSET key value:获取该元素的值,并给该元素设置新值。(通常和incr搭配使用,比如一个mycount一直incr,然后达到某些情况需要清零,清零之前需要知道mycount的值).
    del key:删除元素
    RENAME oldkey newkey:重命名

    2,有序队列 type: list

      key: v1,v2,... vn

    rpush keyList value:向keyList添加元素,向后加,r表示右边
    
    lpush keyList value:向keyList左边添加元素,LPUSH puts the new value at the start of the list.
    
    lrange keyList beginIndex endIndex:获取keyList的元素,用两端的索引取出子集,endIndex=-1则表示全部取出

    llen keyList :获取keyList的长度大小
    lpop keyList:取出并移除keyList第一个元素,左边的元素
    rpop keyList:取出并移除keyList最后一个元素,右边的元素
    LINDEX key index:获取该索引下的元素。
    lrem key count value:删除count个value。(count为正数,从头开始,删除count个value元素;count为负,则从尾部向头删除|count|个value元素;count为0,则所有的元素为value的都删除)
    LSET key index value:设置索引为index下的元素为value.超出索引范围报错。
    LTRIM key start end:清空索引在start 和end之外的元素,索引从0开始,两端保留,两端之外的清空。
    RPOPLPUSH srckey dstkey:源队列srckey,目标队列dstkey,将srckey的最后一个移除,并放到dstkey的第一个。

    3,无序且唯一集合 type:set

    sadd key value : 向set添加元素
    srem key value :从set中移除元素
    smembers key : 取出所有set元素
    SISMEMBER key value: 查看value是否存在set中
    SUNION key1 key2 ... keyN:将所有key合并后取出来,相同的值只取一次
    scard key : 获取set中元素的个数
    SRANDMEMBER key: Return a random element from a Set, without removing the element.随机取出一个
    SDIFF key1 key2 ... keyN:获取第一set中不存在后面几个set里的元素。
    SDIFFSTORE dstkey key1 key2 ... keyN:和sdiff相同,获取key1中不存在其他key里的元素,但要存储到dstkey中。
    SINTER key1 key2 ... keyN:取出这些set的交集
    SINTERSTORE dstkey key1 key2 ... keyN:取出这些key的交集并存储到dstkey
    SMOVE srckey dstkey member:将元素member从srckey中转移到dstkey中,这个操作是原子的。
    
    *

    4,有序集合sorted set,type: zset

    ZADD key score member:向有序set中添加元素member,其中score为分数,默认升序;
    ZRANGE key start end [WITHSCORES]:获取按score从低到高索引范围内的元素,索引可以是负数,-1表示最后一个,-2表示倒数第二个,即从后往前。withscores可选,表示获取包括分数。
    ZREVRANGE key start end [WITHSCORES]:同上,但score从高到低排序。
    ZCOUNT key min max:获取score在min和max范围内的元素的个数
    ZCARD key:获取集合中元素的个数。
    ZINCRBY key increment member:根据元素,score原子增加increment.
    ZREMRANGEBYSCORE key min max:清空集合内的score位于min和max之间的元素。
    ZRANK key member:获取元素的索引(照score从低到高排列)。
    ZREM key member:移除集合中的该元素
    ZSCORE key member:获取该元素的score
    
    *

    5,对象存储hashes,type:hash

    HSET key field value:key是对象名,field是属性,value是值;
    HMSET key field value [field value ...]:同时设置多个属性
    HGET key field:获取该对象的该属性
    HMGET key field value [field value ...]:获取多个属性值
    HGETALL key:获取对象的所有信息
    HKEYS key:获取对象的所有属性
    HVALS key:获取对象的所有属性值
    HDEL key field:删除对象的该属性
    HEXISTS key field:查看对象是否存在该属性
    HINCRBY key field value:原子自增操作,只能是integer的属性值可以使用;
    HLEN key: Return the number of entries (fields) contained in the hash stored at key.获取属性的个数。
    
    *

    *

    redis 127.0.0.1:6379> hmset animal name cat age 12 food fish
    OK
    redis 127.0.0.1:6379> hgetall
    (error) ERR wrong number of arguments for 'hgetall' command
    redis 127.0.0.1:6379> hgetall animal
    1) "name"
    2) "cat"
    3) "age"
    4) "12"
    5) "food"
    6) "fish"
    redis 127.0.0.1:6379> hvals animal
    1) "cat"
    2) "12"
    3) "fish"
    redis 127.0.0.1:6379> hget animal name
    "cat"
    redis 127.0.0.1:6379> hexists animal voice
    (integer) 0
    redis 127.0.0.1:6379> hlen animal
    (integer) 3

    二,sort排序

    sort key [by pattern] [limit startcount] [get pattern] [asc|desc] [alpha] [store dstkey]

    命令如下

    redis 127.0.0.1:6379> sort uid by user_level_* get user_name_*
    1) "jack"
    2) "peter"
    3) "mary"
    4) "admin"
    redis 127.0.0.1:6379> sort uid get # get user_name_* get user_level_*
     1) "1"
     2) "admin"
     3) "9999"
     4) "2"
     5) "jack"
     6) "10"
     7) "3"
     8) "peter"
     9) "25"

    uid  user_name_{uid}  user_level_{uid}

    1    admin        9999

    2    jack          10

    3    peter          25

    4    mary          70

    uid存在一个list中

    user_name_1 admin类似这样的,则是简单的key-valu

    get #是获得排序的键

    也可以通过hash去保存对象,然后进行key查找

    redis 127.0.0.1:6379> hmset user_info_1 name admin level 9999
    OK
    redis 127.0.0.1:6379> hmset user_info_2 name jack level 10
    OK
    redis 127.0.0.1:6379> hmset user_info_3 name peter level 25
    OK
    redis 127.0.0.1:6379> hmset user_info_4 name mary level 70
    OK
    redis 127.0.0.1:6379> sort uid by user_info_*->level
    1) "2"
    2) "3"
    3) "4"
    4) "1"
    redis 127.0.0.1:6379> sort uid by user_info_*->level get user_info_*->name
    1) "jack"
    2) "peter"
    3) "mary"
    4) "admin"

    排序

    redis 127.0.0.1:6379> rpush nums 1 3 5 7 9
    (integer) 5
    redis 127.0.0.1:6379> rpush nums 2 4 6 8 10
    (integer) 10
    redis 127.0.0.1:6379> lrange nums 0 -1
     1) "1"
     2) "3"
     3) "5"
     4) "7"
     5) "9"
     6) "2"
     7) "4"
     8) "6"
     9) "8"
    10) "10"
    redis 127.0.0.1:6379> sort nums store snums
    (integer) 10
    redis 127.0.0.1:6379> lrange snums 0 -1
     1) "1"
     2) "2"
     3) "3"
     4) "4"
     5) "5"
     6) "6"
     7) "7"
     8) "8"
     9) "9"
    10) "10"

    多个命令组成一个原子性操作

    redis 127.0.0.1:6379> multi
    OK
    redis 127.0.0.1:6379> keys *list
    QUEUED
    redis 127.0.0.1:6379> set miao aaa
    QUEUED
    redis 127.0.0.1:6379> get miao
    QUEUED
    redis 127.0.0.1:6379> exec
    1) 1) "alist"
       2) "mlist"
    2) OK
    3) "aaa"

    *

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    django基础知识之模型查询:
    django基础知识之定义模型:
    django基础知识之ORM简介:
    django基础知识之认识MVT MVC:
    解决ImportError: libmysqlclient_r.so.16: cannot open shared object file-乾颐堂
    python 多继承详解-乾颐堂
    一步步来用C语言来写python扩展-乾颐堂
    nltk 之 snowball 提取词干-乾颐堂
    Python 执行js的2种解决方案-乾颐堂
    常用的 Python 调试工具,Python开发必读-乾颐堂
  • 原文地址:https://www.cnblogs.com/qingmaple/p/5983529.html
Copyright © 2011-2022 走看看