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的元素,不会造成阻塞,适用于成员数量巨大的情况。

 

posted on 2017-05-25 15:46  fupeng  阅读(162)  评论(0编辑  收藏  举报

导航