首页 > 学院 > 开发设计 > 正文

Redis (二 各种数据类型下支持的基本命令)

2019-11-14 10:55:17
字体:
来源:转载
供稿:网友

(8)各类型支持的命令

       ##----------------string--------------------        

        set  key value

        setnx key value

        get key

        getset key value

        mget  key1 key2.. keyN

        mset key1 val1  key2  val2 ...keyN valN

        msetnx  key1 val1  key2  val2..keyN  valN

        incr  key

        decr  key

        incrby  key  integer

        decrby  key  integer

        ##---------------------List------------------

        lpush  key string

        rpush key string

        llen  key 

        lrange  key  start  end  下标-1开始

        lset  key  index  value

        ltrim  key  start  end   截取

        lset key index val  设置指定下标的值

        lrem  key count  value  删除从头部开始的count个value

        lpop key 从头部删除

        rpop  key  从尾部删除

        blpop key1 key2  key3...keyN  从左到右扫描,返回第一个非空list,进行lpop操作并返回

        brpop  key1 key2  key3...keyN

        list key对应的value是双向链表,还可以实现消息队列,新消息放队尾,从队首获取

        ##------------------------Set--------------------------

        set类型是一种无须集合,Redis内部通过hashtable实现,复杂度O(1) 快速查找不重复数据

        sadd key member   添加元素到集合

        srem  key member   从集合中删除元素

        spop  key   删除key中的一个随机元素

        srandmember  key  通spop,随机取,不删除

        smove srckey deskey  member  删除srckey中的member元素添加到deskey中

        scard key  返回set的元素个数

        sismember  key  member  判断元素是否在key中

        sinter key1 key2  key3..返回key的交集

        sinterstore  deskey key1  key2  key3  .. keyN  返回所有集合的交集,保存到deskey对应的set

        sunion  key1  key2  key3...

        sunionstore  key1  key2 ...keyN

        sdiff key1  key2 ...keyN  返回指定元素的差集

        sdiffstore  key1  key2 ...keyN  

        smembers   key  返回所有的元素,乱序

        set常用来记录某些做过的是,如投票系统每个用户只能投票一次,可以用日期作为set的key,用户id作为member,查看是否投过票,可以用日期作为key查询

        

        ##-------------------sorted  set ---------------------        

        与set类似,单是有序集合,用skiplist和hashtable实现,skiplist负责排序,hashtable负责保存数据

        可以实现一个具有优先级的队列

        zadd key  score  member  添加member到集合,元素存在则更新对应的score

        zrem key  member   删除元素

        zincrby  key  incr  member  增加对应member的score的值,并且重新排序

        zrank key member  返回指定元素对应的排名

        zrevrank  key  member  同上,但是score按从大到小排序

        zrangebyscore   key  min  max  返回集合中score在给定区间的元素

        zcount  key  min  max  返回集合中score在给定区间的数量

        zcard  key  返回集合中元素的个数

        zscore  key  member  返回指定元素对应的score

        zremrangebyrank  key  min  max  删除集合中排名在给定区间的元素

        zremrangebyscore  key min  value  删除集合中score在给定区间的元素

        sorted set在web中应用较多,比如在排行榜中,按顶贴次数排序,将排序的值设置为score,具体数据设置成value,用户每次按顶贴,只需要zadd 修改score的值

        ##--------------------hash类型------------------------------

        hash类型是每个key对应一个hashtable,增删改的时间复杂度都是O(1),适合存储对象,比如用户信息对象

        把用户的id设为key,用户信息保存到hash类型的存储结构中

        新建一个hash类型的对象时,为了节省内存,radis使用zipmap而不是真正的hashtable,当filed或者value的大小超过一定的限制时,radis内部自动转为hashTable,修改hash-max-zipmap-entries和hash-max-zipmap-value的值,可以修改超出值的大小

        hset key  filed  value  

        hget  key  field

        hmget  key  filed1 ..  fieldN

        hmset key  field1 val1 .. fieldN valN

        hincrby  key  field  integer

        hexists key field  

        hdel  key  field

        hlen key 

        hkeys  key

        hvals key

        hgetall key

##------------------redis 排序命令----------------

redis支持对list  set  sorted set的排序

sort  key  [by pattern] [limit start count]  [get pattern ]  [asc|desc] [alpha] [store deskey]

sort  key  简单排序,并返回排序后的结果

[asc | desc] [alpha] 按照逆序或者字母顺序排序,可以同时使用

[by pattern] 按照给定模式将元素内容组合成新的key,并按新的key对应的内容排序

[limit start count]限制返回结果的条数

[store deskey] 将结果保存下来


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表