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

    hash(哈希表)

    hash的实现有两种ziplist或者hashtable

    增加

    HSET key field value 设置key中的某个字段  时间复杂度:O(1)

    HMSET key field value [field value ...] 同时设置多个字段  时间复杂度:O(N), N 为 field-value 对的数量。

    HSETNX key field value 如果key中的域不存在,则设置,如果域已经存在了,什么也不做。

    查询

    HGET key field 返回key中对应域的值, 时间复杂度:O(1)

    HMGET key field [field ...] 同时返回key中的多个域的值  时间复杂度:O(N), N 为给定域的数量。

    HGETALL key 返回哈希表 key 中,所有的域和值。时间复杂度:O(N), N 为哈希表的大小。

    HLEN key 返回哈希key中域的数量

    HVALS key 返回key中所有域的值 

    HKEYS key 返回哈希表所有的key  时间复杂度:O(N), N 为哈希表的大小。

    HSTRLEN key field 返回哈希表中,给定域关联的值的字符串的长度。

    HEXISTS key field 返回给定的域是否存在,时间复杂度:O(1)

    删除

    HDEL key field [field ...] 删除key中对应域的值。 时间复杂度 O(n),N为删除的域的数量

    修改

    HINCRBY key field increment 对某个域进行 增量操作,如果value不是整数,操作失败。

    HINCRBYFLOAT key field increment 对某个域进行 增量操作, 如果value不能转化为浮点数,失败。

    集合

    集合的实现,如果是整数集合,使用intset来实现,如果集合中存放的是字符串,用hashtable实现。

    添加

    SADD key member [member ...] 时间复杂度 O(n)

    查看全部成员

    SMEMBERS key 返回key中所有成员,时间复杂度O(n)

    SISMEMBER key member 判断元素是否是集合的成员 ,存在返回1,不存在返回0, 时间复杂度O(1)

    集合长度

    SCARD key   返回集合中,元素数量  时间复杂度O(1)

    集合运算

    SDIFF key  key2 返回两个集合的差集 ,返回key中有,但是key2中没有的 元素。 时间复杂度O(n)

    SINTER key  key2 返回两个集合的交集。 时间复杂度O(m*n)  

    SUNION key key2 返回两个集合的并集,时间复杂度O(n)

    元素移动

    SMOVE source destination member 将元素从 source 中移动到 destination, 时间复杂度O(1),原子操作

    随机取出

    SPOP key 随机删除并返回集合中的一个元素, 时间复杂度O(1)

    随机查看

    SRANDMEMBER key [count] 随机返回集合中的一个元素 时间复杂度O(1)

    删除

    SREM key member 移除集合中的指定元素。 时间复杂度O(n) n是指定元素的数量

    SSCAN 用于遍历超大量元素的集合。

    有序集合

    有序集合的实现:使用skiplist或者 ziplist实现。

    增加/修改

    zadd key score number    时间复杂度 log n

    删除成员

    zrem key number 删除key中的number成员,  时间复杂度 log n

    ZREMRANGEBYRANK key start stop 删除成员 ,删除排名在 [start,stop]之间的元素  时间复杂度  log n

    ZREMRANGEBYSCORE key min max 删除成员,删除分数在[min,max]之间的元素   时间复杂度 log n

    统计数量

    zcard key 返回有序集的基数, 时间复杂度 O(1)

    zcount key min max  返回分值在 [min, max] 之间的元素数量  时间复杂度 log n 

    返回成员

    zrange key start stop 返回指定区间内的成员,score从小到大,  时间复杂度 log n

    ZREVRANGE key start stop [WITHSCORES]  返回指定区间内的成员,按照score 从大到小  时间复杂度 log n

    ZRANGEBYSCORE exe min max withscores 返回分数在[min,max]之间的元素, 时间复杂度 log n

    ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 按照分数倒序,返回成员

    返回成员排名

    zrank  key number 返回成员number的排名,   时间复杂度 O(log n)

    ZREVRANK key member

    返回成员分数

    ZSCORE key member 返回集合中,成员number的score分值 时间复杂度O(1)

    zscan key 用来遍历整个key的元素,不会造成阻塞,适用于成员数量巨大的情况。

  • 相关阅读:
    [NOIP2010] 引水入城
    BZOJ 3038 线段树
    [Tyvj 1728]普通平衡树 5种姿势 (彩蛋)
    BZOJ 1588: [HNOI2002]营业额统计
    BZOJ 2141 排队 线段树套替罪羊
    BZOJ 3629 [JLOI2014] 聪明的燕姿 dfs
    P1546 [USACO3.1]最短网络 Agri-Net(洛谷)
    并查集详解+模板
    sync_with_stdio和cin.tie(0); cout.tie(0);
    拓扑排序详解
  • 原文地址:https://www.cnblogs.com/fupeng/p/6898189.html
Copyright © 2011-2022 走看看