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"

    *

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


  • 相关阅读:
    javaweb消息中间件——rabbitmq入门
    virtual box 桥接模式(bridge adapter)下无法获取ip(determine ip failed)的解决方法
    Apache Kylin本地启动
    git操作
    Java学习总结
    Java中同步的几种实现方式
    hibernate exception nested transactions not supported 解决方法
    vue 中解决移动端使用 js sdk 在ios 上一直报invalid signature 的问题解决
    cookie 的使用
    vue 专门为了解决修改微信标题而生的项目
  • 原文地址:https://www.cnblogs.com/qingmaple/p/5983529.html
Copyright © 2011-2022 走看看